![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 2 Всего: 25 |
Появилась необходимость отображения данных в дереве.
Для отображения в дереве объектов я реализовал два класса, первый наследовал от DefaultTreeCellRenderer для отрисовки элемента в зависимости от объекта и его свойств, второй класс модели - реализация интерфейса TreeModel. В нем реализовал все методы и добавил свои для добавления/удаления элементов. Во время работы я наполняю модель данными, после чего вывожу дерево на контейнер (JPanel+JScrollPane) - данные есть и отображаются так как мне нужно. Если я начинаю снова добавлять данные в модель они не отображаются(?), если меняются свойства объектов которые в модели - это так же не отображается, НО если я уберу с контейнера дерево и изменю свойства объектов (листьев) и сновы веведу дерево - то будут видны изменения, иногда корректно а иногда непонятно как... (?). Если убрать дерево из контейнера и затем добавить в модель дерева элементы - это не отобразится. Что нужно еще дописать или реализовать, чтобы можно было динамично управлять отображением дерева, то есть добавлять элементы (листья), удалять, изменять их свойства и это все отображалось? -------------------- |
|||
|
||||
| cube |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: 1 Всего: 3 |
Скинь код где создаешь дерево, работаешь с моделью и устанавливаешь рендерер
|
|||
|
||||
| chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: нет Всего: 77 |
Слу.. пару лет назад возился с такой же тряднью... неотрисовка, дорисовка при удалении/добавлении
рефреши и репейнты - побоку Если не ошибаюсь, есть класс SwingUtilities или близ того. Вызываешь метод а-ля updateTree или refreshTree и передаёшь параметром своё дерево... Добавил - попросил фрешнуть. -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
| Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 2 Всего: 25 |
chief39, Точно, все оказалось просто
Это сообщение отредактировал(а) Hidrag - 27.4.2007, 22:21 -------------------- |
|||
|
||||
| Hidrag |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 2 Всего: 25 |
Метод updateUI() делает то что нужно, но как мне подсказали:
Стал копаться дальше и сделал более правильно:
Теперь у меня другая задча мне нужно получить ссылку на выбранный объект в дереве (интересуют только листья). Вот в Jlist есть классный метод
а вот как вернуть объект из дерева. В модели дерева есть метод
но для его использования нужно еще и ссылку на родителя, а вот как не трогоя родителей, получить объект в листе? Это сообщение отредактировал(а) Hidrag - 28.4.2007, 20:26 -------------------- |
||||||||
|
|||||||||
| Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 2 Всего: 25 |
Может кто подскажет что добавить в модель чтобы по пути
Можно было бы вернуть элемент? -------------------- |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |