我在FieldEditorPreferencePage中的布局设置存在以下问题。
我的代码是这样的:
public void createFieldEditors () {
Group pv = new group(getfieldEditorParent(), SWT.SHADOW_OUT);
Group of = new group(getfieldEditorParent(), SWT.SHADOW_OUT);
pv.setText(“pv”);
of.setText(“of”);
GridLayout layout = new GridLayout(2,false);
pv.setLayout(layout);
of.setLayout(layout);
addField(new StringFieldEditor(“PreferenceStore name”,“Text:”, pv);
addField(new StringFieldEditor(“PreferenceStore name”,“Text:”, pv);
addField(new StringFieldEditor(“PreferenceStore name”,“Text:”, of);
addField(new StringFieldEditor(“PreferenceStore name”,“Text:”, of);
and so on.
}
问题在于它不适用于GridLayout。
StringFieldEditors不是并行的。列数始终为1。同样,当我尝试更改组中StringFieldEditor的大小时,它也不起作用。
有人有什么想法吗?
谢谢。
最佳答案
问题是当您使用 FieldEditorPreferencePage
时,您只能使用 FieldEditor
子类作为组件。这是文档中的一个片段:
这意味着你有两种选择来实现你想要的:
FieldEditor
子类,它将代表 Group 小部件。 FieldEditorPreferencePage
,而只扩展 PreferencePage
。然后你必须实现 createContents
方法而不是 createFieldEditors
。您还必须管理属性的加载和保存。 如果你想提供一些复杂的布局,我认为第二种方法可能更容易。您可能会找到更多信息 here