...
private JTree tree;
private TreeModel model;
private List expanded;
...
private void saveStatus() {
//die aufgeklappten Nodes speichern
expanded = new ArrayList();
speichern(model.getRoot());
}
private void restoreStatus(){
//die gespeicherten Nodes aufklappen:
for (int i = 0; i < expanded.size(); i++) {
TreeNode[] ar = (TreeNode[]) expanded.get(i);
tree.expandPath(new TreePath(ar));
}
}
private void speichern(Object o){
int cc = model.getChildCount(o);
for( int i=0; i < cc; i++) {
DefaultMutableTreeNode child = (DefaultMutableTreeNode) model.getChild(o, i );
TreeNode[] ar = child.getPath();
if (!model.isLeaf(child) && tree.isExpanded(new TreePath(ar))){
expanded.add(ar);
speichern(child);
}
}
}
...
Besser als was?Beni hat gesagt.:Also mir gefällt der Hinweis mit den richtigen Events besser ...
Schon möglich. Was besser ist, hängt wohl von der jeweiligen Situation ab.Beni hat gesagt.:Als alle Pfade zu speichern und später wiederherstellen.