使用Java

时间:2016-06-10 08:11:53

标签: java tree

我已经创建了一个java树。现在我想在此Java树中向现有节点添加新节点。此现有节点可以是树中的任何位置。

我的树节点包含在HashMap中,每个节点都有key(String)和value(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添加什么内容?

更新: 更多编码部分:

        //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 :(得分:1)

我希望makemessages是地图,因此您可以通过调用get方法并将nodeReg作为关键字来获取anode

keys.get(1)

现在这棵树将有四个节点

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);