Expansion and Collapse Events in a JTree are fired before a node is expanded or collapsed can be vetoed, thereby preventing the operation. : JTree « Swing « Java Tutorial





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










14.66.JTree
14.66.1.Creating a JTree
14.66.2.Using Vector to store JTree valuesUsing Vector to store JTree values
14.66.3.Create JTree from Vector
14.66.4.Working with the Nodes of the TreeWorking with the Nodes of the Tree
14.66.5.Scrolling Trees: public void scrollPathToVisible(TreePath path) and public void scrollRowToVisible(int row)Scrolling Trees: public void scrollPathToVisible(TreePath path) and public void scrollRowToVisible(int row)
14.66.6.Traversing TreesTraversing Trees
14.66.7.JTree.lineStyle client propertyJTree.lineStyle client property
14.66.8.Changing the icons of a tree: UIManager.put(Tree.openIcon, new ImageIcon(yourFile.gif));Changing the icons of a tree: UIManager.put(Tree.openIcon, new ImageIcon(yourFile.gif));
14.66.9.Produce horizontal lines between level-one nodesProduce horizontal lines between level-one nodes
14.66.10.Using Boolean value cell renderer to display boolean and non-boolean valuesUsing Boolean value cell renderer to display boolean and non-boolean values
14.66.11.Creating DefaultTreeCellEditor from its Default Tree RendererCreating DefaultTreeCellEditor from its Default Tree Renderer
14.66.12.Adding children DefaultMutableTreeNode to its parentAdding children DefaultMutableTreeNode to its parent
14.66.13.JTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION)
14.66.14.Traveling to all the nodesTraveling to all the nodes
14.66.15.JTree.DynamicUtilTreeNode ClassJTree.DynamicUtilTreeNode Class
14.66.16.Tree Will Expand ListenerTree Will Expand Listener
14.66.17.To find out when a tree node has been expanded or collapsedTo find out when a tree node has been expanded or collapsed
14.66.18.Dynamic Tree
14.66.19.Have the row height for each row computed individually
14.66.20.Setting the Row Height of a JTree
14.66.21.All rows will be given 15 pixels of height
14.66.22.Preventing Expansion or Collapse of a Node in a JTree: override JTree.setExpandedState()
14.66.23.Listening for Expansion and Collapse Events in a JTree Component
14.66.24.Expansion and Collapse Events in a JTree are fired before a node is expanded or collapsed can be vetoed, thereby preventing the operation.
14.66.25.Creating a JTree Component
14.66.26.Visiting All the Nodes in a JTree Component
14.66.27.Traverse all expanded nodes in tree
14.66.28.Finding a Node in a JTree Component
14.66.29.Search backward from last visible row looking for any visible node whose name starts with prefix.
14.66.30.Find the path regardless of visibility that matches the specified sequence of names
14.66.31.Preventing the Expansion or Collapse of a Node in a JTree Component
14.66.32.Have a popup attached to a JTree
14.66.33.Adding editable nodes to JTree
14.66.34.Drag and drop of a group of files into a tree
14.66.35.JTree Look and Feel