如何用 Java 使 JTree 可編輯?
要使 JTree 在 Java 中可編輯,可以使用 TreeCellEditor 類。由此,將 setEditable() 方法設為真 −
TreeCellEditor editor = new DefaultCellEditor(textField); tree.setEditable(true); tree.setCellEditor(editor);
以上程式碼將使樹可編輯。以下是一個在 Java 中使 JTree 可編輯的示例 −
示例
package my; import javax.swing.DefaultCellEditor; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeCellEditor; public class SwingDemo { public static void main(String[] args) throws Exception { JFrame frame = new JFrame("Demo"); DefaultMutableTreeNode node = new DefaultMutableTreeNode("Products"); DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("Clothing"); DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Electronics"); DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("Home Decor"); DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("Furniture"); node.add(node1); node.add(node2); node.add(node3); node.add(node4); DefaultMutableTreeNode one = new DefaultMutableTreeNode("Shirt"); DefaultMutableTreeNode two = new DefaultMutableTreeNode("Trousers"); DefaultMutableTreeNode three = new DefaultMutableTreeNode("Jeans"); DefaultMutableTreeNode four = new DefaultMutableTreeNode("Mobiles"); DefaultMutableTreeNode five = new DefaultMutableTreeNode("Camera"); DefaultMutableTreeNode six = new DefaultMutableTreeNode("Tablet"); DefaultMutableTreeNode seven = new DefaultMutableTreeNode("Paintings"); DefaultMutableTreeNode eight = new DefaultMutableTreeNode("Showpieces"); DefaultMutableTreeNode nine = new DefaultMutableTreeNode("Wardrobes"); DefaultMutableTreeNode ten = new DefaultMutableTreeNode("Bean Bags"); node1.add(one); node1.add(two); node1.add(three); node2.add(four); node2.add(five); node2.add(six); node3.add(seven); node3.add(eight); node4.add(nine); node4.add(ten); JTree tree = new JTree(node); for (int i = 0; i < tree.getRowCount(); i++) { tree.expandRow(i); } tree.putClientProperty("JTree.lineStyle", "Angled"); JTextField textField = new JTextField(); TreeCellEditor editor = new DefaultCellEditor(textField); tree.setEditable(true); tree.setCellEditor(editor); tree.setRowHeight(25); frame.add(tree); frame.setSize(600,450); frame.setVisible(true); } }
這將生成以下輸出 −
另一個螢幕截圖顯示我們可以輕鬆編輯任何節點 −
廣告