JTree expandPath适用于File,但不适用于包装类

时间:2018-06-16 14:53:54

标签: java swing tree jtree

我想知道要求是什么,以便JTree正常运作。我编写了一些代码,显示了一个文件系统树,然后调用expandPath()来扩展它的路径。

当我使用File对象时,一切正常,但树显示每个节点上的完整路径。所以我将它包装在一个更改toString()的类中,以便只显示目录/文件名,但现在expandPath()不再有效,路径也不会扩展。

package tools.controls.TreeControl.Filesystem;

import java.io.File;
import java.net.URI;

public class TreeFile
    extends File
    implements Cloneable
    , Comparable<File>
{
    private static final long serialVersionUID = 1L;

    public TreeFile(TreeFile oOther)
    {
        super(oOther.getParentFile(), oOther.getName());
    }

    public TreeFile(File oFile)
    {
        super(oFile.getParentFile(), oFile.getName());
    }

    public TreeFile(String oPath)
    {
        super(oPath);
    }

    public TreeFile(URI oFileURL)
    {
        super(oFileURL);
    }

    public TreeFile(String oParent, String oChild)
    {
        super(oParent, oChild);
    }

    public TreeFile(File oParent, String oChild)
    {
        super(oParent, oChild);
    }

    public TreeFile getParentTreeFile()
    {
        File f = getParentFile();
        if(f == null)
            return null;

        return new TreeFile(f);
    }

    public String toString()
    {
        return getName();
    }

    public TreeFile clone()
    {
        return new TreeFile(this);
    }

    @Override
    public int compareTo(File oObject)
    {
        return super.compareTo(oObject);
    }
}

0 个答案:

没有答案