DefaultMutableTreeNode有seObject与getObject方法,生成树的时候set,在事件中获取节点之后再get

解决方案 »

  1.   

    pxboy(阿土仔) :
    具体的代码有没有啊?我的生成的树的代码是:
    public DefaultMutableTreeNode createNodes() {
            this.root = new DefaultMutableTreeNode("无根节点");
            for (int i = 0; i < postlist.size(); i++) {
                if (pos_list.get(i).equals("0")) {
                    root = new DefaultMutableTreeNode( (String) namelist.get(i));
                    rootid = idlist.get(i).toString();                if (!rootid.equals("")) {                    if (poslist.get(i).toString().equals(this.rootid)) {
                            root.add(new DefaultMutableTreeNode( (String) (
                                namelist.
                                get(i))));
                        }
                    }
                    break;
                }        }
            root = this.getNodes(rootid, root);
            return root;
        }    public DefaultMutableTreeNode getNodes(String rootId,
                                               DefaultMutableTreeNode root1) {
            for (int j = 0; j < postlist.size(); j++) {
                if (postlist.get(j).toString().equals(rootId)) {
                    DefaultMutableTreeNode root2 = new DefaultMutableTreeNode( (
                        String) (
                        namelist.get(j)));
                    root1.add(root2);
                    getNodes(idlist.get(j).toString(), root2);
                }
            }
            return root1;
        }
      

  2.   

    需要在哪儿写set?
    root.add(new DefaultMutableTreeNode( (String) (namelist.get(i))));
    如何改?
    root.set???
      

  3.   

    root.add(new DefaultMutableTreeNode( (String) (
                                namelist.
                                get(i))));
    这里可以改成:
    DefaultMutableTreeNode node = new DefaultMutableTreeNode( (String) (
                                namelist.
                                get(i)))
    node.setObject(Object);
      

  4.   

    pxboy(阿土仔) :
    不行啊,我试过了,DefaultMutableTreeNode没有setObject的方法,只有setUserObject的方法,我试以后,发现,树显示时的节点内容也被改变了。
    其实现在就是我想有一个节点,
    例如:节点的内容:学校,我现在就是想点击它的时候,得到一个“210000”的值。
    DefaultMutableTreeNode node = new DefaultMutableTreeNode("学校");
    node.setUserObject("210000");这时候节点的显示内容就变成了210000了。
    怎么解决呢?
      

  5.   

    是应该用setUserObject,sorry记错了,
    你可以自己封装一个对象,在这个对象里加上一些属性,重写它的toString()方法,
    再getUserObject()返回这个对象,使用它的属性就是了
      

  6.   

    DefaultMutableTreeNode node = new DefaultMutableTreeNode("学校");
    MyObject myObject = new MyObject();
    myObject.setName("学校");
    myOjbect.setId("210000");
    node.setUserObject(myObject);
    这个MyObject就不用我写了吧?记得重写toString()方法,你就可以想它显示你想要的
      

  7.   

    阿士仔:
    谢谢你,我本来以为这次终于可以好用了,
    我另外做了一个类,叫MyObject,设置了getName,setName,getCode,setCode的方法。
    在APPLET里引用它,可是一引入
    MyObject myObject = new MyObject();
    树就显示不出来了。
    太郁闷了,这是怎么回事啊?