0

我正在开发一个资源管理器应用程序。在那我想在JTree. 任何人都可以帮我做到这一点吗?

4

2 回答 2

1

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

在您的情况下,您需要检查每个子项是目录还是文件。如果它是一个目录,您只需重新开始并列出所有子项目。阅读即将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);
    }
}
于 2013-10-02T11:21:05.790 回答
0

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

于 2013-10-02T12:05:45.747 回答