来自文件路径的Java JTree目录结构

来自文件路径的Java JTree目录结构,java,swing,directory,jtree,filepath,Java,Swing,Directory,Jtree,Filepath,我一直在想办法,也许你们中的一些人能帮我。我有一个文件列表及其完整路径(这些只是文件在另一台机器上的字符串),例如: 我想创建一个Jtree来显示如下目录结构: C: a b c file1.txt file2.txt d file3.tct e file4.txt 我一直在拆分分隔符上的字符串,因此我得到了一个数组列表,如: "C:","a","b","c","file1.txt" "C:","a","b","c","file2.

我一直在想办法,也许你们中的一些人能帮我。我有一个文件列表及其完整路径(这些只是文件在另一台机器上的字符串),例如:

我想创建一个Jtree来显示如下目录结构:

C:
  a
   b
    c
     file1.txt
     file2.txt
   d
    file3.tct
  e
   file4.txt
我一直在拆分分隔符上的字符串,因此我得到了一个数组列表,如:

"C:","a","b","c","file1.txt"
"C:","a","b","c","file2.txt"
"C:","a","d","file3.txt"
"C:","e","file4.txt"
现在我想一次为它们添加一个索引,但是如果该级别的值已经存在,那么就跳到下一个索引。i、 它将添加第一个数组,然后在第二个数组上,它将进入树的0级,因为已经存在一个“C:”,所以移动到树的1级和数组的索引1。我遇到的问题是,我不知道如何以这种方式导航树

是否有任何建议或替代实现?

首先,对字符串进行排序(在拆分之前)


如何处理第一行是显而易见的,我不会对此发表评论。在第二行中,搜索已经构建的树并检查节点是否已经存在。找到一个不存在的路径后,按照第一行中完成的过程进行操作。

文件
完成解析和维护路径的工作。当您想要在
JTree
中显示文件时,您还可以创建一个相应的
TreeModel
,例如
FileTreeModel
,引用。由于它实现了
TreeModel
,因此可以“将其设置为
JTree
的模型,然后您将拥有一个普通的旧标准
JTree
”。您可以使用任何装入的文件系统中的任何
文件作为根,例如:

TreeModel model = new FileTreeModel(new File(System.getProperty("user.dir")));
JTree tree = new JTree(model);

我不确定FileTreeModel是否是最好的方式-它扫描整个目录。根据您所写的,我猜您只想显示列表中的路径
您可以使用此处描述的TreePathsTreeModel来实现它:
您只需将文件路径从字符串转换为树路径对象。

另请参见。
TreeModel model = new FileTreeModel(new File(System.getProperty("user.dir")));
JTree tree = new JTree(model);