The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > javax.swing.tree  [15 examples] > Events  [2 examples]

e1032. Listening for Expansion and Collapse Events in a JTree Component

The tree component allows you to get events before and after a node has been expanded or collapsed. The events that are fired before a node is expanded or collapsed can be vetoed, thereby preventing the operation.
    // Create tree
    JTree tree = new JTree();
    
    // Add pre-expansion event listener
    tree.addTreeWillExpandListener(new MyTreeWillExpandListener());
    
    // Add post-expansion event listener
    tree.addTreeExpansionListener(new MyTreeExpansionListener());
    
    // Pre-expansion/collapse event listener
    public class MyTreeWillExpandListener implements TreeWillExpandListener {
        public void treeWillExpand(TreeExpansionEvent evt) throws ExpandVetoException {
            JTree tree = (JTree)evt.getSource();
    
            // Get the path that will be expanded
            TreePath path = evt.getPath();
    
            // Cancel the operation if desired
            boolean veto = false;
            if (veto) {
                throw new ExpandVetoException(evt);
            }
        }
    
        public void treeWillCollapse(TreeExpansionEvent evt) throws ExpandVetoException {
            JTree tree = (JTree)evt.getSource();
    
            // Get the path that will be collapsed
            TreePath path = evt.getPath();
    
            // Cancel the operation if desired
            boolean veto = false;
            if (veto) {
                throw new ExpandVetoException(evt);
            }
        }
    }
    
    // Post-expansion/collapse event listener
    public class MyTreeExpansionListener implements TreeExpansionListener {
        public void treeExpanded(TreeExpansionEvent evt) {
            JTree tree = (JTree)evt.getSource();
    
            // Get the path that was expanded
            TreePath path = evt.getPath();
        }
    
        public void treeCollapsed(TreeExpansionEvent evt) {
            JTree tree = (JTree)evt.getSource();
    
            // Get the path that was collapsed
            TreePath path = evt.getPath();
        }
    }

 Related Examples
e1033. Listening for Selection Events in a JTree Component

See also: Layout    Node Expansion    Nodes    Selections   


© 2002 Addison-Wesley.