java - SWT 树 getItems()

标签 java treeview swt zk items

我试图从特定的 SWT 树中获取所有项目(并从它们创建一个 zk 树 - 并不重要)。 问题是我只能获得树的第一个项目,而不能更深入。我使用 tree.getItems() 获取第一个项目,但是当我使用 item.getItems() 时,我得到一个空 array();

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);
        }
    }
}

最佳答案

在伸展树(Splay Tree)的分支之前,不会创建子节点的 TreeItem 对象。

如果您不想展开整个树,最好使用树的 ITreeContentProvider 内容提供程序并调用 getElementsgetChildren 方法。

如果您想展开整个树,请调用 TreeViewer expandAll() 方法。

关于java - SWT 树 getItems(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34440792/

相关文章:

java - 在 Java/Spring 中,如何优雅地处理缺失的翻译值?

java.math.BigDecimal比较: the same value represented in different formats don't match

c# - TreeNode.Handle 不使用 Treeview 返回

winforms - 三态 Treeview Windows 窗体

java - couchbase 中有默认 View 吗?

java - 从命令行覆盖 Maven 插件中的属性

python - Tkinter TreeView 小部件未正确对齐/在小部件之间添加空间

java - 如何使 SWT Composite 可供选择?

eclipse-plugin - 在eclipse中显示ViewPart

java - Swt 文件对话框选择了太多文件?