FieldEditorPreferencePage中的布局问题

6 eclipse swt eclipse-plugin jface eclipse-rcp

我在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.
 }
Run Code Online (Sandbox Code Playgroud)

问题是它不适用于GridLayout.
StringFieldEditors不是并行的.列数始终为1.此外,当我尝试更改组中StringFieldEditors的大小时,它也不起作用.

有人有什么想法吗?
谢谢.

Mar*_*zar 7

问题是,在使用时FieldEditorPreferencePage,只能使用FieldEditor子类作为组件.这是文档的片段:

FieldEditorPreferencePage实现了一个页面,该页面使用这些字段编辑器在页面上显示和存储首选项值.FieldEditorPreferencePage子类不是创建SWT控件来填充其内容,而是创建字段编辑器以显示内容. 页面上的所有字段都必须实现为字段编辑器.

这意味着你有两个选择如何实现你想要的:

  1. 实现自己的子类FieldEditor,它代表Group小部件.
  2. 不要延伸FieldEditorPreferencePage,而只是PreferencePage改为.然后你必须实现createContents方法而不是createFieldEditors.您还必须管理属性的加载和保存.

我认为如果你想提供一些复杂的布局,第二种方式可能会更容易.您可以在这里找到更多信息