Обновление компонента jTree после создания нового jTree - PullRequest
0 голосов
/ 27 июня 2011

Я прочитал много тем об этом, но все еще есть некоторые проблемы.Я использую проект рабочего стола Java от NB.Я создал дерево из палитры, и теперь после каждого нажатия кнопки я хочу создать новое дерево и обновить его.Таким образом, у меня есть событие, выполненное, где я хочу, чтобы новый jTree добавил несколько DefaultMutableTreeNode's и показал это в окне.Есть идеи?

Может быть, другими словами, как мне создать Jtree, чтобы изменить его содержимое?Я делаю что-то вроде этого сейчас: в initComponents jTree1 = new JTree (nodeF);где nodeF - это мое поле (DefaultMutableTreeNode), инициализированное перед initComponents, а затем я хочу изменить этот элемент узла, добавив и удалив другие узлы.

Я могу обновить дерево ((DefaultTreeModel) jTree1.getModel ()).перезагрузить ();но я не могу создать новый экземпляр nodeF

Я упал, как будто я совершаю какую-то глупую ошибку .. не знаю, как правильно создать графический интерфейс ..

Ответы [ 2 ]

5 голосов
/ 27 июня 2011

Первая идея, отойди от Netbeans.Использование графического редактора не позволяет вам изучать важные части Swing и генерирует код, который ужасно отлаживать или настраивать.

Вторая идея, похоже, что вам может быть достаточно просто обновить существующее дерево и удалить текущеесодержание, установив рут.Таким образом, вам не нужно каждый раз создавать новое дерево.

2 голосов
/ 27 июня 2011

Действительно ли изменяется древовидная структура? Или вы просто разворачиваете / сворачиваете узлы в дереве? Я думаю, что последнее.

Вам, вероятно, следует изменить объекты модели данных для реализации TreeNode. JTree будет запрашивать ваши объекты TreeNode по мере необходимости, чтобы определить, у каких из них есть дочерние элементы, какие есть дочерние элементы и т. Д.

Чтобы развернуть / сжать узлы в дереве без использования встроенных элементов управления дерева, используйте методы в JTree, например, expandPath или expandRow .

...