Java:TreeModel中的preorderEnumeration,如何获取depthindex和sibling索引?

时间:2012-03-04 21:03:49

标签: java swing jtree treemodel

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

    }

对于上面的例子,你如何知道你在树枝中的深度?如果你正在迭代兄弟姐妹,你怎么得到它的索引?

1 个答案:

答案 0 :(得分:1)

您可以通过计算从getParent()到结果为node的{​​{1}}进行迭代的父母数来获得深度。

感谢null,您可以获得node的索引。

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