if i am expanding node of jtree then i want to collapse previous expanding node of jtree in swings how is it possible
hi friend,
To control the expanding and collapsing of node of jtree you may implement the interface TreeWillExpandListener and TreeExpansionListener hope this will be helpful for you.
Following code snippet may help you how to implement these interface.
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 NodeExpandAndCollapseControllExample implements TreeWillExpandListener, TreeExpansionListener{ JTree tree = new JTree(); public void createTree() { tree.addTreeWillExpandListener(this); tree.addTreeExpansionListener(this); JFrame frame = new JFrame(); frame.add(new JScrollPane(tree)); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); frame.setVisible(true); } public static void main(String args[]) { NodeExpandAndCollapseControllExample expansion = new NodeExpandAndCollapseControllExample(); expansion.createTree(); } @Override public void treeExpanded(TreeExpansionEvent event) { tree = (JTree) event.getSource(); TreePath treePath = event.getPath(); System.out.println("Expanding Tree"); } @Override public void treeCollapsed(TreeExpansionEvent event) { tree = (JTree) event.getSource(); TreePath treePath = event.getPath(); System.out.println("Collapsing Tree"); } @Override public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException { tree = (JTree) event.getSource(); TreePath treePath = event.getPath(); boolean bol = false; if (bol) { throw new ExpandVetoException(event); } } @Override public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException { tree = (JTree) event.getSource(); TreePath treePath = event.getPath(); boolean bol = false; if (bol) { throw new ExpandVetoException(event); } } }
Thanks.