The JTree class has an inner class, JTree.DynamicUtilTreeNode
The JTree uses it to create the nodes for your trees.
The DynamicUtilTreeNode is a DefaultMutableTreeNode subclass
The DynamicUtilTreeNode doesn't create its child nodes until they're needed.
The child nodes are needed when you either expand the parent node or try to traverse a tree.
import java.awt.BorderLayout;
import java.util.Hashtable;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
public class DynamicUtilTreeNodeDemo {
public static void main(String args[]) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
Hashtable hashtable = new Hashtable();
hashtable.put ("Two", new String[]{"A", "B", "C"});
Hashtable