我在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.此外,当我尝试更改组中StringFieldEditors的大小时,它也不起作用.
有人有什么想法吗?
谢谢.
问题是,在使用时FieldEditorPreferencePage
,只能使用FieldEditor
子类作为组件.这是文档的片段:
FieldEditorPreferencePage实现了一个页面,该页面使用这些字段编辑器在页面上显示和存储首选项值.FieldEditorPreferencePage子类不是创建SWT控件来填充其内容,而是创建字段编辑器以显示内容. 页面上的所有字段都必须实现为字段编辑器.
这意味着你有两个选择如何实现你想要的:
实现自己的子类FieldEditor
,它代表Group小部件.
不要延伸FieldEditorPreferencePage
,而只是PreferencePage
改为.然后你必须实现createContents
方法而不是createFieldEditors
.您还必须管理属性的加载和保存.
我认为如果你想提供一些复杂的布局,第二种方式可能会更容易.您可以在这里找到更多信息