Comment puis-je auto-développer un JTree lors de la définition d'un nouveau TreeModel?

J'ai un custom JTree et personnalisé JModel; je le ferais pour le JTree à "auto-étendre" quand je lui donne un nouveau modèle. Pour le moment, c'est tout simplement l'effondrement de tous les nœuds de la racine.

Voici un exemple:

private class CustomTree extends JTree {

    @Override
    public boolean isExpanded(TreePath path) {
        return ((Person) path.getLastPathComponent).hasChildren();

}

private class CustomTreeModel extends TreeModel {

    //... omitting various implementation details

    @Override
    public boolean isLeaf(Object object) {
        return !((Person) object).hasChildren();
    }

}

Model model = new Model();
Person bob = new Person();
Person alice = new Person();
bob.addChild(alice);
model.setRoot(bob);
JTree tree = new CustomTree(new CustomTreeModel(model));

À ce stade, l'arbre affiche correctement:

- BOB
  - ALICE

où Alice est une enfant de Bob (à la fois dans les données et dans l'arborescence visuelle)

Cependant, si je l'appelle:

tree.setModel(new CustomTreeModel(model));

tout est effondré:

+ BOB

Est-il un moyen de "s'auto-développer" tout dans l'arbre lors de la définition d'un nouveau modèle?

pas d'idées de ce code et la description, tous les déclarants & auditeur disparaître après le modèle est modifié,
Je crois que ma réponse ci-dessous résout mon problème.
🙂 ............... ne pas utiliser d'index par type int, vous pouvez perdu cet indice, à stocker tous accessible sur le nœud inc. La valeur de l'objet (de mon point de vue)
Étendre sur la définition d'un nouveau modèle. Pour mieux aider plus tôt, après une SSCCE.
Je suis désolé, je ne comprends pas très bien - je peux perdre de l'arbre.getRowCount() index? Comment?

OriginalL'auteur sdasdadas | 2013-03-04