- PR -

SWT.JFaceを使用したダイアログボックスの自作について

1
投稿者投稿内容
tak
会議室デビュー日: 2005/07/06
投稿数: 12
お住まい・勤務地: Tokyo
投稿日時: 2005-07-13 11:33
只今SWT,JFaceを使ったGUIの開発しているのですが、
ひとつ解決できない問題があるので質問させて頂きます。

どのような問題かといいますと、jface.Dialogクラスを継承しカスタムダイアログを作成し、
createDialogAreaメソッドをオーバーライドして様々なコンポーネントを配置しているのですが、
各コンポーネントのサイズの設定を反映してくれないという状態です。
テキストフィールドの場合は、実行すると半角英数1文字程のサイズしかありません。
又、テキストフィールドにデフォルトで文字を設定すると、その文字数分のサイズは確保されます。

レイアウトはFormLayoutを使用し、コンポーネントの位置は問題なく配置されるのですが、
Text txt = new .....;
txt.setSize(80,20);
txt.setBounds(....);
等色々試行錯誤はしてみたのですが、反映されませんでした。

以下、見づらくて申し訳ないですがソースの一部です。
どなたか問題点等分かりましたら御指摘お願いいたします。

public AddDialog(Shell parent) {
super(parent);
}

protected Point getInitialSize() {
return new Point(340, 175);
}

protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText("xxxxx");
}

protected Control createDialogArea(Composite parent) {
FormLayout layout = new FormLayout();
layout.marginHeight = 8;
layout.marginWidth = 10;
Composite composite =(composite)super.createDialogArea(parent);
composite.setLayout(layout);

txt1 = new Text(composite,SWT.BORDER|SWT.SINGLE);
FormData txt1xy = new FormData();
txt1xy.left = new FormAttachment(34);
txt1xy.top = new FormAttachment(32);
txt1.setLayoutData(txt1xy);
txt1.setSize(80,20);


[ メッセージ編集済み 編集者: tk 編集日時 2005-07-14 14:47 ]

[ メッセージ編集済み 編集者: tk 編集日時 2005-07-14 14:48 ]
1

スキルアップ/キャリアアップ(JOB@IT)