Java JTree expand tree node by DefaultMutableTreeNode
import java.awt.Container; import java.awt.FlowLayout; import java.util.Enumeration; import java.util.Set; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; public class Main { public static void main(String args[]) { final JFrame f = new JFrame("JTree Demo"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = f.getContentPane(); c.setLayout(new FlowLayout()); DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode c1 = new DefaultMutableTreeNode("X"); DefaultMutableTreeNode c2 = new DefaultMutableTreeNode("B"); DefaultMutableTreeNode c3 = new DefaultMutableTreeNode("C"); root.add(c1);/*from ww w.java 2 s.com*/ root.add(c2); root.add(c3); c1.add(new DefaultMutableTreeNode("1")); c1.add(new DefaultMutableTreeNode("2")); c2.add(new DefaultMutableTreeNode("3")); c2.add(new DefaultMutableTreeNode("4")); c3.add(new DefaultMutableTreeNode("5")); DefaultMutableTreeNode n6 = new DefaultMutableTreeNode("6"); n6.setUserObject("demo2s.com"); c3.add(n6); JTree t = new JTree(root); expandAllNodes(root,t); c.add(new JScrollPane(t)); f.pack(); f.setVisible(true); } /** * Expand all tree nodes under the specified DefaultMutableTreeNode object. * @param treeNode * @param tree a JTree with DefaultTreeModel as its model. */ public static void expandAllNodes(DefaultMutableTreeNode treeNode, JTree tree) { DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); Enumeration enum1 = treeNode.breadthFirstEnumeration(); while (enum1.hasMoreElements()) { treeNode = (DefaultMutableTreeNode) enum1.nextElement(); if (treeNode.getChildCount() > 0) { TreePath path = new TreePath(model.getPathToRoot(treeNode)); tree.expandPath(path); } } } }