SWT 树 getItems()
SWT Tree getItems()
我正在尝试从特定的 SWT 树中获取所有项目(并从中创建一个 zk 树——不重要)。
问题是我只能得到树的第一个项目,我不能更深入。我使用 tree.getItems() 来获取第一项,但是当我使用 item.getItems() 时,我得到一个空数组();
swtTreeToZkTree(treeViewer.getTree().getItems(), zkTreeChildren);
public void swtTreeToZkTree(TreeItem[] treeItems, Treechildren treeChildren) {
for (TreeItem item : treeItems) {
Treeitem treeItem = new Treeitem();
treeItem.setParent(treeChildren);
Treerow treeRow = new Treerow();
treeRow.setParent(treeItem);
Treecell treeCell = new Treecell();
treeCell.setParent(treeRow);
treeCell.setLabel(item.getText());
if (item.getItemCount() > 0) {
Treechildren treeChildrenSub = new Treechildren();
treeChildrenSub.setParent(treeItem);
swtTreeToZkTree(item.getItems(), treeChildrenSub);
}
}
}
子节点的 TreeItem
对象只有在树的那个分支展开后才会创建。
如果您不想展开整个树,最好使用树的 ITreeContentProvider
内容提供程序并调用 getElements
和 getChildren
方法。
如果你想展开整个树调用TreeViewer
expandAll()
方法。
我正在尝试从特定的 SWT 树中获取所有项目(并从中创建一个 zk 树——不重要)。 问题是我只能得到树的第一个项目,我不能更深入。我使用 tree.getItems() 来获取第一项,但是当我使用 item.getItems() 时,我得到一个空数组();
swtTreeToZkTree(treeViewer.getTree().getItems(), zkTreeChildren);
public void swtTreeToZkTree(TreeItem[] treeItems, Treechildren treeChildren) {
for (TreeItem item : treeItems) {
Treeitem treeItem = new Treeitem();
treeItem.setParent(treeChildren);
Treerow treeRow = new Treerow();
treeRow.setParent(treeItem);
Treecell treeCell = new Treecell();
treeCell.setParent(treeRow);
treeCell.setLabel(item.getText());
if (item.getItemCount() > 0) {
Treechildren treeChildrenSub = new Treechildren();
treeChildrenSub.setParent(treeItem);
swtTreeToZkTree(item.getItems(), treeChildrenSub);
}
}
}
子节点的 TreeItem
对象只有在树的那个分支展开后才会创建。
如果您不想展开整个树,最好使用树的 ITreeContentProvider
内容提供程序并调用 getElements
和 getChildren
方法。
如果你想展开整个树调用TreeViewer
expandAll()
方法。