tree.addTreeExpansionListener(new TreeExpansionListener() {
@Override
public void treeExpanded(TreeExpansionEvent event) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) event
.getPath().getLastPathComponent();
node.removeAllChildren();
//System.out.println(node.getChildCount());
child = new DefaultMutableTreeNode("new node");
node.add(child);;
frame.doLayout();
frame.repaint();
}
@Override
public void treeCollapsed(TreeExpansionEvent event) {
// TODO Auto-generated method stub
}
});
Asked
Active
Viewed 440 times
2

Bruno Lowagie
- 75,994
- 9
- 109
- 165

Gev
- 125
- 1
- 1
- 5
-
1You need to notify the `TreeModel`, something like [`JTree#insertNodeInto`](http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/DefaultTreeModel.html#insertNodeInto(javax.swing.tree.MutableTreeNode,%20javax.swing.tree.MutableTreeNode,%20int)) and [`TreeModel#removeNodeFromParent`](http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/DefaultTreeModel.html#removeNodeFromParent(javax.swing.tree.MutableTreeNode)), for [example](http://stackoverflow.com/questions/22683092/jtree-avoid-collapse-after-reload/22683989#22683989) – MadProgrammer Apr 16 '15 at 06:57
-
1See the [File Browser GUI](http://codereview.stackexchange.com/q/4446/7784) for an example. – Andrew Thompson Apr 16 '15 at 10:23