我的要求是我的UI上有一个浏览按钮。当我选择一个目录并按下Open时,然后使用所选路径,树形结构应该出现。父/根目录将从我选择的文件夹开始。
例如:如果我选择c:/ mydocuments / myfiles,那么树的根将是myfiles,然后它应该在树中显示它的所有子项。
目前,在swings中,JTree可用于生成树结构,但为此,我们需要创建一个列表,然后将其提供给JTree。
在我的场景中,每当我需要生成列表时,路径发生变化就变得很困难。
所以我想知道在java中我们有类似jqueryfiletree的东西,它采用绝对路径并自动生成树。
答案 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;
}
}