Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Listening for Expansion and Collapse Events in a JTree Component

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.TreeWillExpandListener; import javax.swing.tree.ExpandVetoException; import javax.swing.tree.TreePath; public class Main {   public static void main() {     JTree tree = new JTree();     tree.addTreeWillExpandListener(new MyTreeWillExpandListener());     tree.addTreeExpansionListener(new MyTreeExpansionListener());     JFrame f = new JFrame();     f.add(new JScrollPane(tree));     f.setSize(300, 300);     f.setVisible(true);   } } class MyTreeWillExpandListener implements TreeWillExpandListener {   public void treeWillExpand(TreeExpansionEvent evt) throws ExpandVetoException {     JTree tree = (JTree) evt.getSource();     TreePath path = evt.getPath();     boolean veto = false;     if (veto) {       throw new ExpandVetoException(evt);     }   }   public void treeWillCollapse(TreeExpansionEvent evt) throws ExpandVetoException {     JTree tree = (JTree) evt.getSource();     TreePath path = evt.getPath();     boolean veto = false;     if (veto) {       throw new ExpandVetoException(evt);     }   } } class MyTreeExpansionListener implements TreeExpansionListener {   public void treeExpanded(TreeExpansionEvent evt) {     JTree tree = (JTree) evt.getSource();     TreePath path = evt.getPath();     System.out.println("treeExpanded");   }   public void treeCollapsed(TreeExpansionEvent evt) {     JTree tree = (JTree) evt.getSource();     TreePath path = evt.getPath();     System.out.println("treeCollapsed");   } }