描述:
构建一个树(JTree) ,添加树里面的节点(DefaultMutableTreeNode)全部用我自己定义的类构造。    //自定义类
    class tempTest{
     String str;
     tempTest(String str){
     this.str = str;
     }
     public String toString(){
     return str;
     }
    }        //test
        ArrayList<tempTest> nodeList = new ArrayList<tempTest>();
        tempTest par = new tempTest("parent");
        tempTest chd1 = new tempTest("child1");
        tempTest chd2 = new tempTest("child2");
        tempTest chd3 = new tempTest("child3");        nodeList.add(par);
        nodeList.add(chd1);
        nodeList.add(chd2);
        nodeList.add(chd3);        
        
        p3 = treePanel.addObject(null, par);  //treePanel是我自己构建好的树 addObject直接添加节点
        treePanel.addObject(p3, chd1);
        treePanel.addObject(p3, chd2);
        treePanel.addObject(p3, chd3);
        //test我目前实现的代码,都是在界面上可以添加和删除节点。问题:ArrayList实际上就是JTree对应的数据,当我删除节点之后。我该如何实现对ArrayList中的数据实现删除呢?

解决方案 »

  1.   

    我觉得不应该用ArrayList,因为ArrayList是线性的,而数据是树形的,你可以自己写一个TreeObject
      

  2.   

    是这样的,我的数据还做其他用途。
    对于其他功能,如果数据是线性的,处理起来比较方便。我在JTree上只有增删改,这3个操作。
    树之分两级父节(Parent)点全部ArrayList,每个父节点(Parent类中)再包含一个child的ArrayList,不知这样设计是否合理?
      

  3.   

    类似jdk里的File对象,即可代表目录,也可代表文件。每个Node里面包含一个list,代表其子节点。
    而且把Tree对象转换成ArrayList也不麻烦,先深或先广遍历一遍即可