jsf、swing的官方指南

源代码在线查看: treedemo.java

软件大小: 2425 K
上传用户: tanhua1981
关键词: swing jsf
下载地址: 免注册下载 普通下载 VIP

相关代码

				/**				 * A 1.4 application that requires the following additional files:				 *   TreeDemoHelp.html				 *    arnold.html				 *    bloch.html				 *    chan.html				 *    jls.html				 *    swingtutorial.html				 *    tutorial.html				 *    tutorialcont.html				 *    vm.html				 */				import javax.swing.JEditorPane;				import javax.swing.JFrame;				import javax.swing.JPanel;				import javax.swing.JScrollPane;				import javax.swing.JSplitPane;				import javax.swing.UIManager;								import javax.swing.JTree;				import javax.swing.tree.DefaultMutableTreeNode;				import javax.swing.tree.TreeSelectionModel;				import javax.swing.event.TreeSelectionEvent;				import javax.swing.event.TreeSelectionListener;								import java.net.URL;				import java.io.IOException;				import java.awt.Dimension;				import java.awt.GridLayout;								public class TreeDemo extends JPanel				                      implements TreeSelectionListener {				    private JEditorPane htmlPane;				    private JTree tree;				    private URL helpURL;				    private static boolean DEBUG = false;								    //Optionally play with line styles.  Possible values are				    //"Angled" (the default), "Horizontal", and "None".				    private static boolean playWithLineStyle = false;				    private static String lineStyle = "Horizontal";				    				    //Optionally set the look and feel.				    private static boolean useSystemLookAndFeel = false;								    public TreeDemo() {				        super(new GridLayout(1,0));								        //Create the nodes.				        DefaultMutableTreeNode top =				            new DefaultMutableTreeNode("The Java Series");				        createNodes(top);								        //Create a tree that allows one selection at a time.				        tree = new JTree(top);				        tree.getSelectionModel().setSelectionMode				                (TreeSelectionModel.SINGLE_TREE_SELECTION);								        //Listen for when the selection changes.				        tree.addTreeSelectionListener(this);								        if (playWithLineStyle) {				            System.out.println("line style = " + lineStyle);				            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 panel.				        add(splitPane);				    }								    /** Required by TreeSelectionListener interface. */				    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());				        }				    }								    private class BookInfo {				        public String bookName;				        public URL bookURL;								        public BookInfo(String book, String filename) {				            bookName = book;				            bookURL = TreeDemo.class.getResource(filename);				            if (bookURL == null) {				                System.err.println("Couldn't find file: "				                                   + filename);				            }				        }								        public String toString() {				            return bookName;				        }				    }								    private void initHelp() {				        String s = "TreeDemoHelp.html";				        helpURL = TreeDemo.class.getResource(s);				        if (helpURL == null) {				            System.err.println("Couldn't open help file: " + s);				        } else if (DEBUG) {				            System.out.println("Help URL is " + helpURL);				        }								        displayURL(helpURL);				    }								    private void displayURL(URL url) {				        try {				            if (url != null) {				                htmlPane.setPage(url);				            } else { //null url						htmlPane.setText("File Not Found");				                if (DEBUG) {				                    System.out.println("Attempted to display a null 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: A Short Course on the Basics",				            "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);								        //Bloch				        book = new DefaultMutableTreeNode(new BookInfo				            ("Effective Java Programming Language Guide",					     "bloch.html"));				        category.add(book);								        //Arnold/Gosling				        book = new DefaultMutableTreeNode(new BookInfo				            ("The Java Programming Language", "arnold.html"));				        category.add(book);								        //Chan				        book = new DefaultMutableTreeNode(new BookInfo				            ("The Java Developers Almanac",				             "chan.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);				    }				        				    /**				     * Create the GUI and show it.  For thread safety,				     * this method should be invoked from the				     * event-dispatching thread.				     */				    private static void createAndShowGUI() {				        if (useSystemLookAndFeel) {				            try {				                UIManager.setLookAndFeel(				                    UIManager.getSystemLookAndFeelClassName());				            } catch (Exception e) {				                System.err.println("Couldn't use system look and feel.");				            }				        }								        //Create and set up the window.				        JFrame frame = new JFrame("TreeDemo");				        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);								        //Create and set up the content pane.				        TreeDemo newContentPane = new TreeDemo();				        newContentPane.setOpaque(true); //content panes must be opaque				        frame.setContentPane(newContentPane);								        //Display the window.				        frame.pack();				        frame.setVisible(true);				    }								    public static void main(String[] args) {				        //Schedule a job for the event-dispatching thread:				        //creating and showing this application's GUI.				        javax.swing.SwingUtilities.invokeLater(new Runnable() {				            public void run() {				                createAndShowGUI();				            }				        });				    }				}							

相关资源