私はSWT GUI開発の初心者です。私はEclipseプラグインの開発にSWTを使用しています。基本的には、2つのラジオ・オプション・グループと2つ目のラジオ・オプション・グループの下にあるテキスト・ボックスが必要でした。以下のようなものです。FormCayExceptionをFormLayoutに配置するとき
Heading1
. A radio button
. B radio button
Heading2
. C radio button
. D radio button
Textbox1 Textbox2 Textbox3
Iが互いに対してそれらのテキストボックスを必要とするので、私は、FormLayoutを統合を用います。
によって引き起こさ:java.lang.ClassCastExceptionが:しかし、それは私に例外を与えるorg.eclipse.swt.layout.FormDataは*
org.eclipse.swt.layout.GridDataにキャストすることはできませんしかし、私はGridData
を使用していません。 例外は129行目で発生します。 Textbox1を基準にTextbox2を追加できません。私のコードは以下のとおりです。
Shell sh = new Shell(parent_shell,SWT.PRIMARY_MODAL | SWT.TRAIL | SWT.CASCADE);
System.out.println("execute");
FormLayout fL = new FormLayout();
sh.setLayout(fL);
sh.setText("Configure");
sh.setSize(330,300);
sh.setActive();
Composite composite = new Composite(sh, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
composite.setLayout(layout);
FormData fd = new FormData(); //line 100
fd.top = new FormAttachment(0,0);//line 101
fd.left = new FormAttachment(0,0);//line 102
//fd.right = new FormAttachment(26);//line 103
//fd.bottom = new FormAttachment(10);//line 104
composite.setLayoutData(fd);
RadioGroupFieldEditor rgfe = new RadioGroupFieldEditor("User Choice",
"Heading1", 1, new String[][]{
{"A radio button","a"},{"B radio button","b"}
}, composite,false);
RadioGroupFieldEditor rgfe1 = new RadioGroupFieldEditor("User Choice1",
"Heading2", 1, new String[][]{
{"C radio button","c"},{"D radio button","d"}
}, composite,false);
Text ol = new Text(composite,SWT.READ_ONLY);
ol.setText("Output Location");
ol.setEnabled(false);
// FormData fd1 = new FormData();
// fd.top = new FormAttachment(fd);
// fd.left = new FormAttachment(1);
// fd.right = new FormAttachment(26);
// fd.bottom = new FormAttachment(10);
// ol.pack();
// ol.setLayoutData(fd1); //line 129 --> exception occurs
while (!sh.isDisposed()) {
if (!parent_display.readAndDispatch()) {
parent_display.sleep();
}
}
}
'RadioGroupFieldEditor'は、その親が' GridLayout'が設定されていることを前提としています。 'RadioGroupFieldEditor'をGridLayoutが設定された別のコンポジットに埋め込むことをお勧めします。 –
フィールドエディタのクラスは 'FieldEditorPreferencePage'設定ページで使用されることを前提としています。あなたは彼らがどこにいても正しく働くように奮闘します。 –