Отображение директории в JTree - Java
Формулировка задачи:
Доброе утро, необходимо отобразить дерево выбранной директории с помощью компонента JTree с помощью существующих классов.
Решение задачи: «Отображение директории в JTree»
textual
Листинг программы
- package javaapplication1;
- import java.io.File;
- import javax.swing.JFrame;
- import javax.swing.JScrollPane;
- import javax.swing.JTree;
- import javax.swing.SwingUtilities;
- import javax.swing.tree.DefaultMutableTreeNode;
- import javax.swing.tree.DefaultTreeModel;
- public class JavaApplication1 implements Runnable {
- private DefaultMutableTreeNode root;
- private DefaultTreeModel treeModel;
- private JTree tree;
- @Override
- public void run() {
- JFrame frame = new JFrame("File Browser");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- File fileRoot = new File("C:/");
- root = new DefaultMutableTreeNode(new FileNode(fileRoot));
- treeModel = new DefaultTreeModel(root);
- tree = new JTree(treeModel);
- tree.setShowsRootHandles(true);
- JScrollPane scrollPane = new JScrollPane(tree);
- frame.add(scrollPane);
- frame.setLocationByPlatform(true);
- frame.setSize(640, 480);
- frame.setVisible(true);
- CreateChildNodes ccn =
- new CreateChildNodes(fileRoot, root);
- new Thread(ccn).start();
- }
- public static void main(String[] args) {
- SwingUtilities.invokeLater(new JavaApplication1());
- }
- public class CreateChildNodes implements Runnable {
- private DefaultMutableTreeNode root;
- private File fileRoot;
- public CreateChildNodes(File fileRoot,
- DefaultMutableTreeNode root) {
- this.fileRoot = fileRoot;
- this.root = root;
- }
- @Override
- public void run() {
- createChildren(fileRoot, root);
- }
- private void createChildren(File fileRoot,
- DefaultMutableTreeNode node) {
- File[] files = fileRoot.listFiles();
- if (files == null) return;
- for (File file : files) {
- DefaultMutableTreeNode childNode =
- new DefaultMutableTreeNode(new FileNode(file));
- node.add(childNode);
- if (file.isDirectory()) {
- createChildren(file, childNode);
- }
- }
- }
- }
- public class FileNode {
- private File file;
- public FileNode(File file) {
- this.file = file;
- }
- @Override
- public String toString() {
- String name = file.getName();
- if (name.equals("")) {
- return file.getAbsolutePath();
- } else {
- return name;
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д