我有一個使用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