我正在嘗試創建一個JTree以顯示在我的應用程序中,該應用程序將顯示我的應用程序的內部數據結構。我使用HashTable初始化利用每個對象索引的所有對象,您可以使用getIndex()檢索每個對象索引。我試圖創建一個JTree只使用每個對象的名稱來顯示使用HashMap創建JTree
我無法弄清楚如何獲得正確添加節點。我創建了一個新節點,但我不能將其作爲父節點引用。
這裏創建我的JTree和根節點:
JTree tree;
DefaultMutableTreeNode treeRoot = new DefaultMutableTreeNode("Cave");
tree = new JTree(treeRoot);
在這裏,我創建代表締約方對象是根節點的一個新的子節點:
//DefaultMutableTreeNode newParty.getIndex(); //!Does not work
//DefaultMutableTreeNode newParty.getIndex() = new DefaultMutableTreeNode(newParty.getName() , treeRoot); //does not work
addNode(newParty.getName(), treeRoot);
貝婁是ADDNODE方法:
static DefaultMutableTreeNode addNode (String Asset, DefaultMutableTreeNode parent){
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(Asset);
parent.add(newNode);
return newNode;
}
在這裏,我嘗試添加一個生物節點,它是特定聚會節點的子節點:
findParty = (newCreature.getParty());// == index of parent Node in HashMap
if (findParty == 0) {
SorcerersCave.theCave.addCreature(newCreature);
addNode (newCreature.getName(), treeRoot);
}else {
((Party)gameAssets.get(findParty)).addMember(newCreature);
gameAssets.put( newCreature .getIndex(), newCreature);
addNode (newCreature.getName(), ((Party)gameAssets.get(findParty).getName()));
理想我想創建每個對象INT指數所代表的節點,那麼我可以說節點添加到樹正確的文本顯示和家長。正如你所看到的,我嘗試多次這樣做,但似乎沒有什麼真正堅持。
爲了更好地爲您提供幫助,請在本地變量 – mKorbel
中發佈[SSCCE](http://sscce.org/),簡短,可運行,可編譯,並具有HashMap的hardocoded值。另請參閱本[問答](http:// stackoverflow.com/q/16072182/230513)。 – trashgod
@mKorbel我想出了我的問題並解決了它。在我試圖實例化節點的地方真的是一個問題,我想這更像是一個OOP問題,然後是一個JTree/HashMap問題。我想改變這個問題來更好地描述問題,以便更好地幫助他人,我只是不確定要改變的問題。有什麼建議麼? –