2010-03-18 77 views

回答

6

它使用自己的DefaultMutableTreeNode實現壓倒一切的isLeaf()可能與真正的孩子替換爲:真

返回如果此節點沒有孩子。

Swing Tutorial: JTree解釋這下4.1動態樹

+0

我知道這是一個古老的問題,但是在實施這個解決方案後,它工作正常,我有一個問題:當擴展這種類型節點本身被選中,這不是其他「正常」節點中的默認行爲。任何暗示?我應該創建一個新的問題嗎? – spuas 2012-05-10 07:06:54

1

有一個假的孩子/兒童數並使用TreeWillExpandListener

+0

我需要使用你的建議來實現延遲加載樹節點。但是如果沒有孩子,TreeWillExpandListener不起作用。 「假冒兒童/小孩計數」是什麼意思?謝謝。 – 2013-08-19 16:29:24

+0

在連接偵聽器之前,將一個已知的常量子項添加到您希望進行延遲加載的每個節點。這將使節點看起來像有孩子。在監聽器中,在節點擴展之前,檢查這個「假」節點是否仍然存在,如果是,則將其替換爲真實節點。 – 2013-08-19 20:38:01

+0

謝謝!我不確定這個解決方案是否可行,因爲DefaultMutableTreeNode.add(MutableTreeNode newChild)方法的doc說:「從它的父節點中刪除newChild,並通過將它添加到此節點的子數組的末尾使其成爲這個節點的子節點。」這意味着一個節點只能添加到一個父節點。 – 2013-08-20 16:27:49

相關問題