2016-06-10 160 views
0

我已經創建了一個Java樹。現在我想將新節點添加到此Java樹中的現有節點。此現有節點可以是樹中的任何位置。使用Java在JavaTree的現有節點中添加新節點

我的樹節點包含在HashMap中,每個節點都有鍵(String)和值(Double)。我知道它的關鍵和價值。那麼,如何添加此節點來糾正現有節點?

DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(new NodeInfor(check, 0.45)); 

      nodeReg.put(check, newNode); 
      ?????.add(newNode); 

在上述代碼爲?????我需要使用什麼?現有的節點是我已經創建的。但在這一點上,我隨機選擇它,我只知道它的關鍵和價值。

如果我想加入這個新的節點之後創建一個單獨的另一個JavaTree,

   tree = new JTree(root); ------------------???? 
       add(tree); 
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       this.setTitle("Sub JTrees"); 
       this.pack(); 
       this.setVisible(true); 
在上面的代碼中

tree = new JTree(root);我需要添加root什麼?

UPDATE: 更多編碼部分:

 //create root 
     DefaultMutableTreeNode root = new DefaultMutableTreeNode(new NodeInfor(keys.get(0), values.get(0))); 
     // create the child nodes 
     DefaultMutableTreeNode aNode = new DefaultMutableTreeNode(new NodeInfor(keys.get(1), values.get(1))); 
     DefaultMutableTreeNode bNode = new DefaultMutableTreeNode(new NodeInfor(keys.get(2), values.get(2))); 

      nodeReg.put(keys.get(0), root); 
      nodeReg.put(keys.get(1), aNode); 
      nodeReg.put(keys.get(2), bNode); 

      root.add(aNode); 
      root.add(bNode); 
      ----------- 
      ----------- 
      --------- 
      --------- 
      tree = new JTree(root); 
      add(tree); 
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      this.setTitle("First JTree"); 
      this.pack(); 
      this.setVisible(true); 
      --------- 
      ---------- 
      ---------- 
      DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(new NodeInfor(check, 0.45)); 

      nodeReg.put(check, newNode); 
      ?????.add(newNode);-----------------????????? 

      tree = new JTree(???????????);------------?????? 
      add(tree); 
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      this.setTitle("Sub JTree"); 
      this.pack(); 
      this.setVisible(true); 
      } 

我想新的節點添加到keys.get(1), values.get(1)。那麼如何再次添加和顯示新的樹?

+1

您可以發佈您滿樹的代碼? –

+0

@ user3747720我用更多的編碼更新了我的問題。如果我的樹變得很大,如何將新節點添加到現有節點(現有節點可以在樹的中間或任何地方,我知道它的關鍵和價值)。 – Emalka

回答

1

我希望nodeReg是地圖,所以你可以通過調用get方法和傳遞keys.get(1)作爲key來得到anode

DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(new NodeInfor(check, 0.45)); 
nodeReg.put(check, newNode); 
DefaultMutableTreeNode node = nodeReg.get(keys.get(1)); 
node.add(newNode); //add new node to anode 
tree = new JTree(root); 

現在,這棵樹將有四個節點

root,aNode,bNode,newNode 
+0

如果你想要更清晰的視圖然後發佈DefaultMutableTreeNode的代碼,這樣我就可以得到add方法。 –

+0

它工作正常。感謝您的回覆。 – Emalka

相關問題