Развернуть Свернуть Развернуть Проблема с JTree Lazy loading

Я реализовал дерево с помощью Lazy Loading. Узлы 1-го уровня создаются во время создания дерева, где дочерние узлы создаются только тогда, когда пользователь разворачивает какой-либо конкретный узел.

Данные поступают из БД, и мы запускаем запрос к базе данных, чтобы заполнить дочерние узлы. Реализован TreeExpansionListener и используется переопределенная реализация метода treeExpanded. При расширении я удаляю все дочерние узлы для выбранного узла, делаю запрос к БД и добавляю записи в качестве дочерних к выбранному узлу. Перед добавлением любого узла в дерево, фиктивный дочерний элемент добавляется к узлу. Работа с DefaultMutableTreeNode.

Пока все хорошо, все работало нормально, как и ожидалось.

Проблема 1 - Как и вы, это вызов БД для каждого расширения, поэтому, если узел свернут и снова развернут, я буду выполнять отключение БД и снова обрабатывать снова ... Идея состоит в том, чтобы не загружать узлы заново, если они уже развернуты ...

Проблема 2 - Если мне нужно было выполнить принудительное обновление, то есть повторно загрузить дерево и сохранить состояние расширения. Сейчас это в рабочем состоянии ... Как я могу добиться того же самого, а также исправить проблему 1 выше?

Ценю любую помощь по этому вопросу.

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

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