Как автоматически развернуть JTree при установке новой модели TreeModel?

У меня есть обычайJTree и обычайJModel; Я хотел бы, чтобы JTree автоматически расширялся, когда я давал ему новую модель. На данный момент просто сворачиваются все узлы до корня.

Вот пример:

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));

На данный момент дерево правильно отображает:

- BOB
  - ALICE

где Алиса - потомок Боба (как в данных, так и в визуальном дереве)

Однако, если я позвоню:

tree.setModel(new CustomTreeModel(model));

все рухнуло

+ BOB

Есть ли способ «автоматического расширения» всего в дереве при установке новой модели?

Ответы на вопрос(6)

Ваш ответ на вопрос