Сохранение расширенного состояния JTree при добавлении элементов в узлы

Здравствуйте, у меня есть вопрос относительно сохранения состояния расширения при изменении DefaultTreeModel. В настоящее время у меня есть jTree, который выглядит так:

Если я выберу элемент из левого JList и выберу TestGr из правого Jtree и нажму кнопку "Добавить тестовый набор", он добавит выбранные элементы в DefaultTreeModel. Это разрушит дерево:

Я хотел бы как-то сохранить предыдущее состояние расширения и просто обновить дерево, чтобы показать недавно добавленный элемент, например, так:

Моя цель - сохранить ранее расширенное состояние, каким бы оно ни было, и когда я добавляю элементы в TestGr, все, что было расширено, должно оставаться развернутым и обновляться с новым элементом. У кого-нибудь есть идеи, как мне этого добиться? Я пробовал решение из состояния хранилища / расширенные узлы jtree для восстановления состояния, но оно не подходит, потому что когда я обновляю свой DefaultTreeModel, количество строк тоже обновляется, и это расширяет неправильные строки. Заранее спасибо за подсказку.

1 ответ

Решение состоит в том, чтобы использовать метод перезагрузки DefaultTreeModel, но для определенного узла. например:

DefaultTreeModel model;
DefaultMutableTreeNode node;
//Initialize or change model
model.reload(node);
enter code here
Другие вопросы по тегам