3

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

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

目前在 Swings JTree 可用于生成树结构,但为此我们需要创建一个列表,然后将其提供给 JTree。

在我的场景中,这变得很困难,因为每次我需要在路径更改时生成一个列表。

所以我想知道在java中我们有没有像jqueryfiletree这样的东西,它采用绝对路径并自动生成树。

4

2 回答 2

6

您无需列出清单。TreeModel您应该只拥有可以基于文件路径生成的代码。

并且该代码在互联网上的许多位置都可用。例如在这篇 SunJTree文章中

另一个很好的例子是 Andrew Thompson 的“文件浏览器 GUI”,他也活跃在这个网站上

于 2012-07-09T10:05:16.410 回答
4

这是一个最小的工作代码示例:

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;
   }
}
于 2013-07-18T20:00:06.447 回答