我正在为我的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包含了源代码,因此您可以从间谍程序的弹出窗口跳到那里,并自己寻找完成方式。

10-06 03:39
查看更多