如何在JavaSwing中通过提供绝对路径直接生成文件树?

如何在JavaSwing中通过提供绝对路径直接生成文件树?,java,swing,jtree,Java,Swing,Jtree,我的要求是在我的UI上有一个浏览按钮。当我选择一个目录并按Open时,然后使用所选的路径将出现一个树结构。父/根目录将从我选择的文件夹开始 例如:如果我选择c:/mydocuments/myfiles,那么树的根目录将是myfiles,然后它应该在树中显示它的所有子目录 目前,JTree可以用来生成一个树结构,但要做到这一点,我们需要制作一个列表,然后将其提供给JTree 在我的场景中,每当路径发生变化时,我需要生成一个列表,这就变得很困难 因此,我想知道,在java中,我们是否有任何类似的东西

我的要求是在我的UI上有一个浏览按钮。当我选择一个目录并按Open时,然后使用所选的路径将出现一个树结构。父/根目录将从我选择的文件夹开始

例如:如果我选择c:/mydocuments/myfiles,那么树的根目录将是myfiles,然后它应该在树中显示它的所有子目录

目前,JTree可以用来生成一个树结构,但要做到这一点,我们需要制作一个列表,然后将其提供给JTree

在我的场景中,每当路径发生变化时,我需要生成一个列表,这就变得很困难


因此,我想知道,在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;
   }
}