Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Traverse all expanded nodes in tree

import java.util.Enumeration; import javax.swing.JTree; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; public class Main {   public static void main(String[] argv) throws Exception {     JTree tree = new JTree();     visitAllExpandedNodes(tree);     }   public static void visitAllExpandedNodes(JTree tree) {     TreeNode root = (TreeNode) tree.getModel().getRoot();     visitAllExpandedNodes(tree, new TreePath(root));   }   public static void visitAllExpandedNodes(JTree tree, TreePath parent) {     if (!tree.isVisible(parent)) {       return;     }     TreeNode node = (TreeNode) parent.getLastPathComponent();     System.out.println(node);     if (node.getChildCount() >= 0) {       for (Enumeration e = node.children(); e.hasMoreElements();) {         TreeNode n = (TreeNode) e.nextElement();         TreePath path = parent.pathByAddingChild(n);         visitAllExpandedNodes(tree, path);       }     }   } }