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)
。
我正在尝试学习 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)
。