Mega Code Archive

 
Categories / Java Tutorial / Swing
 

JTree getModel() addTreeModelListener(new TreeModelListener())

import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.event.TreeExpansionEvent; import javax.swing.event.TreeExpansionListener; import javax.swing.event.TreeModelEvent; import javax.swing.event.TreeModelListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; public class Main {   public static void main(String args[]) {     JFrame f = new JFrame("JTree Demo");     f.setSize(260, 240);     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");     DefaultMutableTreeNode aNode = new DefaultMutableTreeNode("A");     root.add(aNode);     DefaultMutableTreeNode bNode = new DefaultMutableTreeNode("B");     aNode.add(bNode);     DefaultMutableTreeNode cNode = new DefaultMutableTreeNode("C");     aNode.add(cNode);     cNode.add(new DefaultMutableTreeNode("D"));     cNode.add(new DefaultMutableTreeNode("E"));     DefaultMutableTreeNode fNode = new DefaultMutableTreeNode("F");     root.add(fNode);     DefaultMutableTreeNode gNode = new DefaultMutableTreeNode("G");     fNode.add(gNode);     fNode.add(new DefaultMutableTreeNode("H"));     gNode.add(new DefaultMutableTreeNode("I"));     JTree jtree = new JTree(root);     jtree.setEditable(true);     TreeSelectionModel tsm = jtree.getSelectionModel();     tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);     jtree.addTreeExpansionListener(new TreeExpansionListener() {       public void treeExpanded(TreeExpansionEvent tee) {         TreePath tp = tee.getPath();         System.out.println("Expansion: " + tp.getLastPathComponent());       }       public void treeCollapsed(TreeExpansionEvent tee) {         TreePath tp = tee.getPath();         System.out.println("Collapse: " + tp.getLastPathComponent());       }     });     jtree.addTreeSelectionListener(new TreeSelectionListener() {       public void valueChanged(TreeSelectionEvent tse) {         TreePath tp = tse.getPath();         System.out.println("Selection event: " + tp.getLastPathComponent());       }     });     jtree.getModel().addTreeModelListener(new TreeModelListener() {       public void treeNodesChanged(TreeModelEvent tme) {         TreePath tp = tme.getTreePath();         Object[] children = tme.getChildren();         DefaultMutableTreeNode changedNode;         if (children != null)           changedNode = (DefaultMutableTreeNode) children[0];         else           changedNode = (DefaultMutableTreeNode) tp.getLastPathComponent();         System.out.println("Model change path: " + tp + "New data: "             + changedNode.getUserObject());       }       public void treeNodesInserted(TreeModelEvent tme) {       }       public void treeNodesRemoved(TreeModelEvent tme) {       }       public void treeStructureChanged(TreeModelEvent tme) {       }     });     f.add(new JScrollPane(jtree));     f.setVisible(true);   } }