2011-09-05 59 views
1

比方說,我有這個代碼的JTree,添加新葉JTree的節點

JTree jTree = new JTree() ; 
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("root") ; 
    jTree.setModel(new DefaultTreeModel(root)); 

    DefaultMutableTreeNode firstNode = new DefaultMutableTreeNode("first node") ; 

現在我想葉加入到從節點命名爲「第一個節點」(這是目前葉) firstNode變量不可用的地方。如何做呢?

清除率: Okey!我在一個類中有一個JFrame(擴展swing),而jTree是這個類的私有成員。現在,我將這個類對象(作爲參數)傳遞給另一個應該填充jTree的類方法。但是我無法用另一個類的方法做任何事情。 (當然訪問私有方法是不是我的問題:)

回答

5

試試這個:

firstNode.add(new DefaultMutableTreeNode("leaf node")); 

UPDATE:根據您的意見,您必須對要在其下添加新葉節點的引用。如果您迴應樹的樹評選活動,那麼你可以通過這個獲得參考:

DefaultMutableTreeNode firstNode = (DefaultMutableTreeNode)jTree.getSelectionPath().getLastPathComponent(); 
+0

對不起我的錯!我忘記說,firstNode變量不可用,我想在其中添加內容。 – Dewsworld

+0

@Dewsworld ...看看我的編輯是否有幫助。否則,你必須清除你的問題。 –

+0

親愛的@Swaranga Sarma。作爲一個新的java傢伙,我很難澄清我的問題。我已經通過澄清來編輯我的問題。現在,你可以幫助:) – Dewsworld

2

小心,結構修飾不會自動通知。使用默認的模型,你可以使用:

treeModel.insertNodeInto(newChild, parent, index) 

在你的情況,我不明白什麼是可用的,哪些不是......

+1

+1通知,只是一個小小的怪癖:節點修改(結構和內容都不會自動通知) – kleopatra

+0

@Adrien Clerc我已經添加了一些說明... – Dewsworld