У меня есть DefaultTreeModel
, содержащий подкласс DefaultMutableTreeNode
. Я только переопределил isLeaf()
, чтобы он всегда возвращал true
, потому что я лениво загружаю дочерние элементы, когда узел расширяется. Затем, когда узел рушится, я удаляю дочерние элементы (запуская соответствующее событие treeNodesRemoved
), потому что я отписался от обновлений с сервера.
Проблема в том, что после того, как пользователь свернет узел и я удалю дочерние элементы, глупый маленький круг расширения исчезнет (но щелчок по этой области все еще работает, чтобы расширить узел). Как я могу всегда показывать элемент управления расширением, когда дети были удалены?
Связано: Добавить кнопку "расширить" к узлу JTree, который имеет нет детей?. Является ли добавление поддельного ребенка единственным способом?
TreeExpansionListener.treeCollapsed
вы можете вызватьdefaultMutableTreeNode.removeAllChildren()
, а затемdefaultTreeModel.reload(defaultMutableTreeNode)
. - person Nate W.   schedule 07.07.2011