sorttreedemo.java

来自「java swing 开发代码」· Java 代码 · 共 58 行

JAVA
58
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?