我有一个使用DefaultTreeModel的JTree。我需要去它的每个节点。遍历多级JTree的所有节点
想象我有这样的树:
[A]
|-[B]
|-[C]
|-[D]
| |-[E]
| |-[F]
| |-[G]
| |-[H]
|-[I]
|-[J]
|-[K]
我需要遍历并打印出来:
---[A]---
>[B]
>[C]
>---[D]---
>>---[E]---
>>>[F]
>>>[G]
>>>[H]
>>+++[E]+++
>+++[D]+++
>[I]
>[J]
>[K]
---[A]---
所以,我使用
java.util.Enumeration en = root.preorderEnumeration();
while (en.hasMoreElements()) {}
但我可以”提出一个工作功能。我需要把---节点名称---当启动一个节点和结束节点+++节点名称+++我不能这样做。如果只有一个父节点不是另一个父节点的最后一个元素,我将它工作到了一个点。但是当最后一个节点也是父节点时它会中断。任何帮助,将不胜感激。
编辑:
现在我注意到它甚至没有工作,以及我的想法。这里是我的电流输出:
----root (81)----
name
time
displaySize
----New Group1----
BaseX
BaseY
----New Group2----
BaseRadius
----New Group3----
Angle
DistanceFromCenter
++++New Group3++++
PlayerSpeed
MouseX
MouseY
++++New Group3++++
PlayerX
PlayerY
BonusSpawned
actorTags
++++New Group3++++
BonusTime
BonusWhich
+++root+++
EDIT2:
while (en.hasMoreElements()) {
nodeTemp = node;
node = (DefaultMutableTreeNode) en.nextElement();
String nodeName = node.toString();
if (node.getChildCount() > 0) {
System.out.println("---" + nodeName + "---");
} else {
if (nodeTemp.getChildCount() == 0 && nodeTemp.getParent() != node.getParent()) {
System.out.println("+++" + nodeName + "+++");
loopCount++;
}
System.out.println(nodeName);
}
loopCount++;
}
到目前为止,您有什么和它输出什么? –
@JavaDevil我更新了这个问题,但正如你所看到的,它根本不起作用,所有的团体结局都是一样的。我无法理解这一点。 – cbt