如何在JavaSwing中通过提供绝对路径直接生成文件树?
我的要求是在我的UI上有一个浏览按钮。当我选择一个目录并按Open时,然后使用所选的路径将出现一个树结构。父/根目录将从我选择的文件夹开始 例如:如果我选择c:/mydocuments/myfiles,那么树的根目录将是myfiles,然后它应该在树中显示它的所有子目录 目前,JTree可以用来生成一个树结构,但要做到这一点,我们需要制作一个列表,然后将其提供给JTree 在我的场景中,每当路径发生变化时,我需要生成一个列表,这就变得很困难如何在JavaSwing中通过提供绝对路径直接生成文件树?,java,swing,jtree,Java,Swing,Jtree,我的要求是在我的UI上有一个浏览按钮。当我选择一个目录并按Open时,然后使用所选的路径将出现一个树结构。父/根目录将从我选择的文件夹开始 例如:如果我选择c:/mydocuments/myfiles,那么树的根目录将是myfiles,然后它应该在树中显示它的所有子目录 目前,JTree可以用来生成一个树结构,但要做到这一点,我们需要制作一个列表,然后将其提供给JTree 在我的场景中,每当路径发生变化时,我需要生成一个列表,这就变得很困难 因此,我想知道,在java中,我们是否有任何类似的东西
因此,我想知道,在java中,我们是否有任何类似的东西,它们采用绝对路径并自动生成树。您不需要制作列表。您应该拥有可以基于文件路径生成
TreeModel
的代码
这些代码在互联网上的很多地方都可以找到。例如在
另一个很好的例子是安德鲁·汤普森(Andrew Thompson)的代码,他也活跃在这个网站上
public class FileTree extends JTree
{
public FileTree(String path)
{
super(scan(new File(path)));
}
private static MutableTreeNode scan(File node)
{
DefaultMutableTreeNode ret = new DefaultMutableTreeNode(node.getName());
if (node.isDirectory())
for (File child: node.listFiles())
ret.add(scan(child));
return ret;
}
}