📄 celleditordemo.java
字号:
import javax.swing.*;import javax.swing.tree.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class CellEditorDemo extends JFrame{ private JTree tree; private JTextField jtf; private DefaultTreeCellEditor editor; public CellEditorDemo() {/* 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 model = new DefaultTreeModel(league); model.insertNodeInto(north, league, 0); model.insertNodeInto(south, league, 1); model.insertNodeInto(jets, north, 0); model.insertNodeInto(raiders, north, 1); model.insertNodeInto(fins, north, 2); model.insertNodeInto(shooters, south, 0); model.insertNodeInto(lions, south, 1); model.insertNodeInto(tigers, south, 2);/* A DefaultTreeCellEditor is created and registers a *//* CellEditorListener. */ editor = new DefaultTreeCellEditor(tree, new DefaultTreeCellRenderer()); editor.addCellEditorListener(new CellEditorHandler());/* A JTree object is created using the previously created tree model. */ tree = new JTree(model); tree.setShowsRootHandles(true); tree.expandRow(1); tree.setEditable(true); tree.setCellEditor(editor); tree.setInvokesStopCellEditing(false); 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, 400, 300); setVisible(true); }/* The CellEditorListener is implemented as an inner class. *//* When the user exits the cell editor by pressing the return *//* key or clicking on another node, a ChangeEvent is generated *//* and sent to either the editingCanceled() or editingStopped() *//* methods. A textfield is updated to indicate which operation *//* has occurred. */ class CellEditorHandler implements CellEditorListener { public void editingCanceled(ChangeEvent event) { jtf.setText("editing canceled"); } public void editingStopped(ChangeEvent event) { jtf.setText("editing stopped"); } } public static void main(String args[]) { CellEditorDemo demo = new CellEditorDemo(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -