!7 import javax.swing.tree.*; p-substance { DefaultMutableTreeNode rootNode = new("root"); rootNode.add(new DefaultMutableTreeNode("dummy")); final JTree tree = new JTree(rootNode); tree.setShowsRootHandles(true); tree.collapseRow(0); tree.addTreeWillExpandListener(new TreeWillExpandListener { public void treeWillCollapse(TreeExpansionEvent e) {} public void treeWillExpand(TreeExpansionEvent e) throws ExpandVetoException { DefaultMutableTreeNode node = cast e.getPath().getLastPathComponent(); print("treeWillExpand, node=" + node.getUserObject()); node.removeAllChildren(); node.add(new DefaultMutableTreeNode(str(now()))); ((DefaultTreeModel) tree.getModel()).nodeStructureChanged(node); } }); showFrame(jscroll(tree)); }