【问题标题】:How to add windows directory structure in JTree?如何在 JTree 中添加 windows 目录结构?
【发布时间】:2013-10-01 16:36:16
【问题描述】:

我正在开发一个资源管理器应用程序。我想在JTree 中添加一个windows 目录结构。有人可以帮我做吗?

【问题讨论】:

标签: java swing file jtree directory-structure


【解决方案1】:

您只需要列出整个文件系统。例如选择一个根目录(在我的例子中,我选择了C:/test。使用listFiles() 方法,您可以获得根文件包含的所有项目(确保根是一个目录!)。然后您遍历这个文件数组并将每个项目添加到模型中。

在您的情况下,您需要检查每个子项是目录还是文件。如果它是一个目录,您只需重新开始并列出所有子项目。阅读 recursion 来实现它。

这是我的代码:

/**
 * 
 */
package tests.fileview;

import java.io.File;

import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

/**
 * FileViewTest created on 02.10.2013<br>
 * <br>
 * Specification:<br>
 */
public class FileViewTest extends JFrame {

    public static void main(String[] args) {
        new FileViewTest().setVisible(true);
    }

    private JTree tree;

    /**
     * 
     */
    public FileViewTest() {
        this.initialize();
        this.build();
        this.configure();
    }

    /**
     *
     */
    public void initialize() {
        this.tree = new JTree();
    }

    /**
     *
     */
    public void build() {
        this.add(this.tree);
    }

    /**
     *
     */
    public void configure() {

        File fileRoot = new File("C:/test");

        DefaultMutableTreeNode root = new DefaultMutableTreeNode(fileRoot);
        DefaultTreeModel model = new DefaultTreeModel(root);

        File[] subItems = fileRoot.listFiles();
        for (File file : subItems) {
            root.add(new DefaultMutableTreeNode(file));
        }

        this.tree.setModel(model);
    }
}

【讨论】:

    【解决方案2】:

    我在 Google 上搜索“如何在 JTree 中添加 windows 目录结构?”并找到了几个完整的例子,例如 'http://www.java2s.com/Code/Java/File-Input-Output/DisplayafilesysteminaJTreeview.htm'(谷歌不是很棒吗?)

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 1970-01-01
      • 2010-09-08
      • 2020-06-02
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      相关资源
      最近更新 更多