Java - обновление JTree - PullRequest
       1

Java - обновление JTree

3 голосов
/ 11 августа 2010

У меня есть JTree, который я использую для отображения некоторых (неудивительно) иерархических данных. Частью спецификации является то, что пользователь может изменить источник данных (атм, это просто между файлами). Теперь, когда это произойдет, я могу без проблем перестроить данные и узлы дерева. Но я испытываю значительные трудности с получением дерева для обновления изменений. Я попытался удалить его из области прокрутки и заменить его новым JTree, но я не видел ничего подобного. Я попытался удалить все из JTree и не увидел никакого эффекта.

Как я могу изменить отображение JTree после его создания?
Ninjedit: Да, я вызывал updateUI ().

Другое редактирование: Я также хотел заменить текущие данные дерева моими новыми данными. Тем не менее, я не вижу никаких методов, которые будут принимать DefaultMutableTreeNode, который я сконструировал. Даже если я просто удаляю JTree и вызываю updateUI на нем, содержащем ScrollPane, ничего не происходит. Или если я использую перекрасить вместо этого.

1 Ответ

5 голосов
/ 11 августа 2010

Может случиться так, что соответствующие события (внутренние события JTree) не запускаются. Например, вы можете добавить узлы, используя node.add(...) или, что еще лучше, model.insertNodeInto(...) (при условии, что вы используете DefaultTreeModel). В этом случае последний метод предпочтительнее, так как он будет запускать соответствующие события, которые приведут к корректному обновлению представления (JTree). Возможно, ваша проблема не в перерисовке пользовательского интерфейса, а в уведомлении о том, что модель изменилась.
Итак, я бы посоветовал посмотреть, как вы динамически модифицируете JTree, и, если возможно, я бы предложил использовать DefaultTreeModel в качестве модели для управления представлением.

И чтобы убедиться, что вы прочитали руководства по Sun JTree , верно?

...