我正在为我的Eclipse应用程序(Juno)添加一个首选项页面。我想创建类似于您在以下Eclipse首选项页面上看到的内容:Eclipse(Juno)>窗口菜单>首选项> Java>编译器>构建。该首选项页面似乎是使用org.eclipse.swt.widgets.Tree创建的,但我不确定。如果是这样,他们如何创建TreeItems?它们是org.eclipse.swt.widgets.TreeItems吗?我需要添加StringFieldEditors和IntegerFieldEditors或某些类型的字段(TextArea ??),并在它们前面添加一些标签,以便以后进行验证。据我了解,不可能将复合添加到TreeItem,那么我应该如何解决这个问题?任何建议,不胜感激。谢谢。
需要补充一点,因为我不能使用Eclipse内部软件包,还有其他方法可以使用公共API来实现我上面描述的内容吗?
这是一个主意,但是此代码将TreeItems内容放置在树下。有什么想法吗?
Composite comp = getFieldEditorParent();
Tree tree = new Tree(comp, SWT.NONE);
tree.setLayout(new FillLayout());
tree.setHeaderVisible(true);
TreeItem item1 = new TreeItem(tree, SWT.NONE);
item1.setText("Name1");
TreeItem item11 = new TreeItem(item1, SWT.NONE);
item11.setText("Name11");
StringFieldEditor s11 = new StringFieldEditor(
"name11",
"label11:",
comp);
item11.setData(s11);
TreeItem item12 = new TreeItem(item1, SWT.NONE);
item12.setText("Name12");
StringFieldEditor s12 = new StringFieldEditor(
"name12",
"label12:",
comp);
item12.setData(s12);
item1.setExpanded(true);
item11.setExpanded(true);
item12.setExpanded(true);
TreeItem item2 = new TreeItem(tree, SWT.NONE);
item2.setText("Name2");
最佳答案
如果您对在Eclipse中实现任何UI元素感兴趣,请安装Eclipse SDK(通过“帮助”>“安装新软件...”)并使用plug-in spy。间谍告诉您哪个类实现了UI元素(在您的情况下,它是org.eclipse.jdt.internal.ui.preferences.JavaBuildPreferencePage
包中的org.eclipse.jdt.ui
)。由于SDK包含了源代码,因此您可以从间谍程序的弹出窗口跳到那里,并自己寻找完成方式。