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

时间:2012-07-09 10:01:12

标签: java swing jtree

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

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

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

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

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

2 个答案:

答案 0 :(得分:6)

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

该代码可在互联网上的很多地方使用。例如,在this Sun JTree article

另一个很好的例子是Andrew Thompson的'File Browser GUI',他也活跃在这个网站上

答案 1 :(得分: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;
   }
}