2011-06-27 117 views
0

我讀了很多關於這個主題,但仍然有一些問題。 我正在使用NB的Java桌面項目。我已經從調色板創建樹,現在每次點擊按鈕後,我想要創建新樹並刷新它。所以我在我想讓新的jTree添加一些DefaultMutableTreeNode並將其顯示在窗口中的情況下執行事件動作。有任何想法嗎?創建新jTree後jTree刷新組件

也許換句話說,我應該如何創建Jtree來修改它的內容?我現在做的是這樣的:initComponents中的 jTree1 = new JTree(nodeF); 其中nodeF是我的字段(DefaultMutableTreeNode)initComponents 之前初始化,然後我想修改此節點元素添加和刪除其他節點。我可以刷新樹((DefaultTreeModel)jTree1.getModel())。reload();但我無法創建nodeF

的新實例

我愛上像我在做一些愚蠢的錯誤..不知道如何創建圖形用戶界面的權利..

回答

5

第一個想法,從NetBeans中脫身。使用GUI編輯器會阻止您學習Swing的重要部分,並生成可調試或自定義的代碼。

第二個想法,它聽起來像只需刷新現有樹並通過設置根目錄刪除當前內容即可脫身。這樣你就不必每次都創建一棵新樹。

+0

我通過在添加新節點之前刪除所有nodeF子節點來解決此問題。仍然認爲有一個更好的方法來做到這一點.. –

+0

由匿名up-voter(Swing)+1 – mKorbel

2

樹結構實際上是在變化嗎?或者你只是在樹中展開/摺疊節點?我的猜測是後者。

您應該更改您的數據模型對象以實現TreeNode。 JTree將根據需要查詢您的TreeNode對象,以確定哪些對象有孩子,孩子在等什麼等。

要在不使用內置樹形控件的情況下擴展/收縮樹中的節點,請使用JTree中的方法,例如expandPathexpandRow