Я использовал JTree в своем графическом интерфейсе и добавил его в JFrame.Когда я хочу обновить его и изменить его узлы в другой части моей программы (когда программа выполняется, как выполненное действие), я пытаюсь добавить новые узлы или удалить узлы;Но мой интерфейс не меняется.Пожалуйста, предложите мне решение.
С уважением
В дополнение к предложению insertNodeInto вы также можете использовать:
DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); DefaultMutableTreeNode root = (DefaultMutableTreeNode)model.getRoot(); root.add(new DefaultMutableTreeNode("another_child")); model.reload(root);
Вы должны убедиться, что после обновления вашей модели вы дадите ей команду запустить событие, чтобы уведомить всех зарегистрированных слушателей о событии.Один из слушателей будет JTree и после получения события будет перерисован.
JTree
Например, DefaultTreeModel содержит методы:
DefaultTreeModel
nodeChanged nodesChanged nodeStructureChanged nodesWereInserted nodesWereRemoved
nodeChanged
nodesChanged
nodeStructureChanged
nodesWereInserted
nodesWereRemoved
Также,как и во всех программах Swing, вам необходимо убедиться, что вы обновляете свою модель в Thread Dispatch Thread .
Вы имеете в виду, что аспект GUI просто не показывает ваши изменения?Вы, вероятно, должны смотреть int repaint() и revalidate().
repaint()
revalidate().
Вот хорошее описание того, когда звонить, какой из них.