📄 sorttreedemo.java
字号:
// SortTreeDemo.java// This class creates a tree model using the SortTreeModel with// a File hierarchy as input.//package jswing.ch17; import java.io.*;import javax.swing.*;import javax.swing.tree.*;public class SortTreeDemo extends JFrame { public SortTreeDemo(String startDir) { super("SortTreeModel Demonstration"); setSize(300, 400); setDefaultCloseOperation(EXIT_ON_CLOSE); PrettyFile f = new PrettyFile(startDir); DefaultMutableTreeNode root = new DefaultMutableTreeNode(f); SortTreeModel model = new SortTreeModel(root, new TreeStringComparator()); fillModel(model, root); JTree tree = new JTree(model); getContentPane().add(new JScrollPane(tree)); } protected void fillModel(SortTreeModel model, DefaultMutableTreeNode current) { PrettyFile pf = (PrettyFile)current.getUserObject(); File f = pf.getFile(); if (f.isDirectory()) { String files[] = f.list(); // ignore "." files for (int i = 0; i < files.length; i++) { if (files[i].startsWith(".")) continue; PrettyFile tmp = new PrettyFile(pf, files[i]); DefaultMutableTreeNode node = new DefaultMutableTreeNode(tmp); model.insertNodeInto(node, current); if (tmp.getFile().isDirectory()) { fillModel(model, node); } } } } public class PrettyFile { File f; public PrettyFile(String s) { f = new File(s); } public PrettyFile(PrettyFile pf, String s) { f = new File(pf.f, s); } public File getFile() { return f; } public String toString() { return f.getName(); } } public static void main(String args[]) { SortTreeDemo demo = new SortTreeDemo(args.length == 1 ? args[0] : "."); demo.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -