Java Swing How to - Get List of all node from a JTree








Question

We would like to know how to get List of all node from a JTree.

Answer

import java.util.Enumeration;
//ww  w  .  ja  va  2s. c  om
import javax.swing.JTree;
import javax.swing.tree.TreeNode;

public class Main {
  public static void main(String[] argv) throws Exception {
    JTree tree = new JTree();
    visitAllNodes(tree);
  }

  public static void visitAllNodes(JTree tree) {
    TreeNode root = (TreeNode) tree.getModel().getRoot();
    visitAllNodes(root);
  }

  public static void visitAllNodes(TreeNode node) {
    System.out.println(node);
    if (node.getChildCount() >= 0) {
      for (Enumeration e = node.children(); e.hasMoreElements();) {
        TreeNode n = (TreeNode) e.nextElement();
        visitAllNodes(n);
      }
    }
  }
}