📄 treeexpansiondemo2.java
字号:
import javax.swing.*;import javax.swing.tree.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class TreeExpansionDemo2 extends JFrame { private JTree tree; private JTextField jtf; public TreeExpansionDemo2() {/* A Collection of DefaultMutableTreeNode objects are created that *//* will form the components of a tree. */ DefaultMutableTreeNode league = new DefaultMutableTreeNode("Soccer League"); DefaultMutableTreeNode north = new DefaultMutableTreeNode("North Division"); DefaultMutableTreeNode south = new DefaultMutableTreeNode("South Divison"); DefaultMutableTreeNode jets = new DefaultMutableTreeNode("Jets"); DefaultMutableTreeNode raiders = new DefaultMutableTreeNode("Raiders"); DefaultMutableTreeNode fins = new DefaultMutableTreeNode("Fins"); DefaultMutableTreeNode shooters = new DefaultMutableTreeNode("Shooters"); DefaultMutableTreeNode lions = new DefaultMutableTreeNode("Lions"); DefaultMutableTreeNode tigers = new DefaultMutableTreeNode("Tigers");/* The node hierarchy is loaded into a DefaultTreeModel object. */ DefaultTreeModel dtm = new DefaultTreeModel(league); dtm.insertNodeInto(north, league, 0); dtm.insertNodeInto(south, league, 1); dtm.insertNodeInto(jets, north, 0); dtm.insertNodeInto(raiders, north, 1); dtm.insertNodeInto(fins, north, 2); dtm.insertNodeInto(shooters, south, 0); dtm.insertNodeInto(lions, south, 1); dtm.insertNodeInto(tigers, south, 2);/* A JTree object is created using the previously created tree model. *//* The JTree registers a TreeExpansionListener. */ tree = new JTree(dtm); tree.setShowsRootHandles(true); tree.addTreeExpansionListener(new TreeExpansionHandler()); jtf = new JTextField(20); jtf.setEditable(false); getContentPane().add( new JScrollPane(tree), BorderLayout.CENTER ); getContentPane().add( jtf, BorderLayout.SOUTH ); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 300, 300); setVisible(true); }/* The TreeExpansionListener is implemented as an inner class. *//* When the user expands or collapses a node, a TreeExpansionEvent *//* is generated and sent to either the treeCollapsed() or *//* treeExpanded() methods. The identity of the node that caused *//* the event is listed in a JTextField. */ class TreeExpansionHandler implements TreeExpansionListener { public void treeCollapsed(TreeExpansionEvent event) { TreePath path = event.getPath(); jtf.setText(""+path.getLastPathComponent()+" node collapsed"); } public void treeExpanded(TreeExpansionEvent event) { TreePath path = event.getPath(); jtf.setText(""+path.getLastPathComponent()+" node expanded"); } } public static void main(String args[]) { TreeExpansionDemo2 demo = new TreeExpansionDemo2(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -