How to make a JTree editable in Java?



To make JTree editable in Java, use the TreeCellEditor class. With that, set the setEditable() method to true −

TreeCellEditor editor = new DefaultCellEditor(textField); tree.setEditable(true); tree.setCellEditor(editor);

The above will make the tree editable. The following is an example to make a JTree editable in Java −

Example

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);    } }

This will produce the following output −

Another screenshot displaying we can easily edit any of the nodes −

Updated on: 2019-07-30T22:30:26+05:30

620 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements