你的树结点是什么类型的?
不能node = tree.getLastSelectedPathComponent();
然后再node.getUserObject();来获得路径吗?

解决方案 »

  1.   

    可以啊,tree节点是DefaultMutableTreeNode,可以那么获得,可是获得的是当前文件加或者文件的名字,比如我有一个树,根节点是c:\
    ,子节点有java(c:\java\),text(c:\text\),winnt(c:\winnt\),子节点的数值是java,text,winnt等,不是括号里面的,所以我取得他的getUserObject()显示的只是java或者text或者winnt等,不是我要的c:\java或者c:\text或者c:\winnt等,这种情况我该如何办?
      

  2.   

    你的DefaultMutableTreeNode又是怎么new的呢?
    new DefaultMutableTreeNode()中的参数是什么类型的?
    你没有扩展DefaultMutableTreeNode吗?
    我是扩展DefaultMutableTreeNode类并用File类型作参数。
      

  3.   

    我的DefaultMutableTreeNode()中的参数是String,存储的是text,java这些内容,如果存储成c:\java,c:\text,那显示树的时候也会显示成这样,你用File解决?如何解决?如何扩展的,能给出实例吗?new DefaultMutableTreeNode()中的参数给的是什么?file.getName()还是file,如果是file,那树上显示的是什么?乱了,请给讲解一下,谢谢
      

  4.   

    我大致说一下吧
    首先FileNode extends DefaultMutableTreeNode
    构造方法中
    public FileNode(File file){
         setUserObject(file);
    }
    为了能在树上只显示文件名,要重载toString方法
    public String toString() {
        File file = (File)getUserObject();
        String filename = file.toString();
        int index = filename.lastIndexOf(File.separator);    return (index != -1 && index != filename.length()-1)?                                                                 filename.substring(index+1) : filename;
    }
    其它的一些方法也要重载。