Java:TreeModel中的preorderEnumeration,如何获取深度索引和兄弟索引?

标签 java swing jtree treemodel

    for (Enumeration e = root.preorderEnumeration(); e.hasMoreElements() && theNode == null;) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();

    }

对于上面的例子,你如何知道你在 Twig 中有多深?如果您要迭代 sibling ,如何获取它的索引?

最佳答案

您可以通过计算在 getParent() 上迭代的父项数量来获取深度。来自node直到结果为 null .

您可以获得node的索引感谢 node.getIndex(node.getParent()) .

如果您需要遍历的每个节点的这两种信息,为了提高效率,我建议您编写自己的遍历器代码,其灵感来自 DefaultMutableTreeNode.getNextNode()DefaultMutableTreeNode.PreorderEnumeration内部类。在后一种情况下,生成的堆栈应包含结构 { node, treeDepth, siblingIndex }

关于Java:TreeModel中的preorderEnumeration,如何获取深度索引和兄弟索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558797/

相关文章:

java - 将 HTML 和 CSS 样式应用于 Java Swing 组件

Java乘法表GUI,请帮助我前进

java - 在 JTree 上设置 SUID?

java - ctrl 的键码

java - 是否可以避免将对象声明为final?

java - 使用绑定(bind)创建对象 <xsd :any> to xml is giving null?

java - 如何在帮助 :effective-pom? 中指定 Artifact

java - iReport - 第一页的行在第二页结束

java - JButton 忽略指示的大小

Java:如何获取JTree中文件的索引