FieldEditorPreferencePage

FieldEditorPreferencePage

我在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

    10-06 06:49