⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treedemo.java

📁 这是一个英文版的《Java程序设计与问题解决》现在好多大学都当成教材
💻 JAVA
字号:
import javax.swing.JTree;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.event.TreeSelectionListener;import javax.swing.event.TreeSelectionEvent;import javax.swing.tree.TreeSelectionModel;import java.net.URL;import java.io.IOException;import javax.swing.JEditorPane;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JFrame;import java.awt.*;import java.awt.event.*;public class TreeDemo extends JFrame {    private JEditorPane htmlPane;    private static boolean DEBUG = false;    private URL helpURL;    //Optionally play with line styles.  Possible values are    //"Angled", "Horizontal", and "None" (the default).    private boolean playWithLineStyle = false;    private String lineStyle = "Angled";     public TreeDemo() {        super("TreeDemo");        //Create the nodes.        DefaultMutableTreeNode top = new DefaultMutableTreeNode("The Java Series");        createNodes(top);        //Create a tree that allows one selection at a time.        final JTree tree = new JTree(top);        tree.getSelectionModel().setSelectionMode                (TreeSelectionModel.SINGLE_TREE_SELECTION);        //Listen for when the selection changes.        tree.addTreeSelectionListener(new TreeSelectionListener() {            public void valueChanged(TreeSelectionEvent e) {                DefaultMutableTreeNode node = (DefaultMutableTreeNode)                                   tree.getLastSelectedPathComponent();                if (node == null) return;                Object nodeInfo = node.getUserObject();                if (node.isLeaf()) {                    BookInfo book = (BookInfo)nodeInfo;                    displayURL(book.bookURL);                    if (DEBUG) {                        System.out.print(book.bookURL + ":  \n    ");                    }                } else {                    displayURL(helpURL);                 }                if (DEBUG) {                    System.out.println(nodeInfo.toString());                }            }        });        if (playWithLineStyle) {            tree.putClientProperty("JTree.lineStyle", lineStyle);        }        //Create the scroll pane and add the tree to it.         JScrollPane treeView = new JScrollPane(tree);        //Create the HTML viewing pane.        htmlPane = new JEditorPane();        htmlPane.setEditable(false);        initHelp();        JScrollPane htmlView = new JScrollPane(htmlPane);        //Add the scroll panes to a split pane.        JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);        splitPane.setTopComponent(treeView);        splitPane.setBottomComponent(htmlView);        Dimension minimumSize = new Dimension(100, 50);        htmlView.setMinimumSize(minimumSize);        treeView.setMinimumSize(minimumSize);        splitPane.setDividerLocation(100); //XXX: ignored in some releases                                           //of Swing. bug 4101306        //workaround for bug 4101306:        //treeView.setPreferredSize(new Dimension(100, 100));         splitPane.setPreferredSize(new Dimension(500, 300));        //Add the split pane to this frame.        getContentPane().add(splitPane, BorderLayout.CENTER);    }    private class BookInfo {        public String bookName;        public URL bookURL;        public String prefix = "file:"                                + System.getProperty("user.dir")                               + System.getProperty("file.separator");        public BookInfo(String book, String filename) {            bookName = book;            try {                bookURL = new URL(prefix + filename);            } catch (java.net.MalformedURLException exc) {                System.err.println("Attempted to create a BookInfo "                                   + "with a bad URL: " + bookURL);                bookURL = null;            }        }        public String toString() {            return bookName;        }    }    private void initHelp() {        String s = null;        try {            s = "file:"                 + System.getProperty("user.dir")                + System.getProperty("file.separator")                + "TreeDemoHelp.html";            if (DEBUG) {                System.out.println("Help URL is " + s);            }            helpURL = new URL(s);            displayURL(helpURL);        } catch (Exception e) {            System.err.println("Couldn't create help URL: " + s);        }    }    private void displayURL(URL url) {        try {            htmlPane.setPage(url);        } catch (IOException e) {            System.err.println("Attempted to read a bad URL: " + url);        }    }    private void createNodes(DefaultMutableTreeNode top) {        DefaultMutableTreeNode category = null;        DefaultMutableTreeNode book = null;        category = new DefaultMutableTreeNode("Books for Java Programmers");        top.add(category);        //original Tutorial        book = new DefaultMutableTreeNode(new BookInfo            ("The Java Tutorial: Object-Oriented Programming for the Internet",            "tutorial.html"));        category.add(book);        //Tutorial Continued        book = new DefaultMutableTreeNode(new BookInfo            ("The Java Tutorial Continued: The Rest of the JDK",            "tutorialcont.html"));        category.add(book);        //JFC Swing Tutorial        book = new DefaultMutableTreeNode(new BookInfo            ("The JFC Swing Tutorial: A Guide to Constructing GUIs",            "swingtutorial.html"));        category.add(book);        //Arnold/Gosling        book = new DefaultMutableTreeNode(new BookInfo            ("The Java Programming Language", "arnold.html"));        category.add(book);        //FAQ        book = new DefaultMutableTreeNode(new BookInfo(            "The Java FAQ", "faq.html"));        category.add(book);        //Chan/Lee        book = new DefaultMutableTreeNode(new BookInfo            ("The Java Class Libraries: An Annotated Reference",             "chanlee.html"));        category.add(book);        //Threads        book = new DefaultMutableTreeNode(new BookInfo            ("Concurrent Programming in Java: Design Principles and Patterns",             "thread.html"));        category.add(book);        category = new DefaultMutableTreeNode("Books for Java Implementers");        top.add(category);        //VM        book = new DefaultMutableTreeNode(new BookInfo            ("The Java Virtual Machine Specification",             "vm.html"));        category.add(book);        //Language Spec        book = new DefaultMutableTreeNode(new BookInfo            ("The Java Language Specification",             "jls.html"));        category.add(book);    }    public static void main(String[] args) {        JFrame frame = new TreeDemo();         frame.addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                System.exit(0);            }        });           frame.pack();        frame.setVisible(true);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -