Tree 中的所有节点都没有展开

All the nodes in Tree not getting expanded

我正在尝试学习 RCP 中的 TreeViewer。我为此写了一小段代码。

public class TreeViewClass extends ViewPart {

public static final String ID = "TreeViewerDemo.treeView";

public TreeViewClass() {
    // TODO Auto-generated constructor stub
}

@Override
public void createPartControl(Composite parent) {

    TreeViewer treeViewer = new TreeViewer(parent, SWT.BORDER);
    Tree tree = treeViewer.getTree();

    TreeItem root = new TreeItem(tree, 0);
    root.setText("Root Node");

    TreeItem childNode1 = new TreeItem(root, 0);
    childNode1.setText("Child Node 1");

    TreeItem childNode2 = new TreeItem(childNode1, 0);
    childNode2.setText("Child Node 2");
}

@Override
public void setFocus() {
    // TODO Auto-generated method stub

}

}

当我运行这段代码时,树得到显示,但只显示根节点。当我点击根节点(带有箭头图标,这意味着它有子节点)时,该节点不显示子节点。 后来我发现,当我对一个节点应用 setExpanded(true) 时,它会显示,否则不会显示。

我的代码哪里有问题?

谢谢!

如果您使用 TreeViewer,则不应使用 TreeItem。相反,您使用内容提供者和标签提供者。如果您想使用 TreeItem,请使用 Tree。将两者混合会产生不可预测的结果。

使用 TreeItem 时,您需要对每个要展开的项目调用 setExpanded(true)