📄 demotreeframe.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package swing;import java.io.IOException;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JEditorPane;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTree;import javax.swing.UIManager;import javax.swing.UIManager.LookAndFeelInfo;import javax.swing.UnsupportedLookAndFeelException;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeCellRenderer;import javax.swing.tree.TreeSelectionModel;/** * * @author zhaolin */public class DemoTreeFrame extends JFrame { public DemoTreeFrame() { try { JSplitPane jsp = new JSplitPane(); final JEditorPane jep = new JEditorPane(); jsp.setOrientation(JSplitPane.VERTICAL_SPLIT); DefaultMutableTreeNode root = new DefaultMutableTreeNode("The Java Series"); createNodes(root); final JTree tree = new JTree(root); MyTreeCellRender render = new MyTreeCellRender(); tree.setCellRenderer(render); //单选 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.addTreeSelectionListener(new TreeSelectionListener(){ public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getSelectionPath().getLastPathComponent(); if(selectedNode.isLeaf()){ try { BookInfo bInfo = (BookInfo) selectedNode.getUserObject(); jep.setPage("file:" + bInfo.getFileName()); } catch (IOException ex) { Logger.getLogger(DemoTreeFrame.class.getName()).log(Level.SEVERE, null, ex); } } } }); jsp.setTopComponent(new JScrollPane(tree)); jsp.setBottomComponent(new JScrollPane(jep)); jep.setContentType("text/html"); jep.setPage("file:help.html"); jep.setEditable(false); this.getContentPane().add(jsp); this.pack(); this.setVisible(true); } catch (IOException ex) { Logger.getLogger(DemoTreeFrame.class.getName()).log(Level.SEVERE, null, ex); } } public static void main(String[] args) { new DemoTreeFrame(); } private void createNodes(DefaultMutableTreeNode root) { DefaultMutableTreeNode category = null; DefaultMutableTreeNode book = null; category = new DefaultMutableTreeNode( "Books for Java Programmers"); root.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); //...add many more books for programmers... category = new DefaultMutableTreeNode( "Books for Java Implementers"); root.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); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -