Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по JTree, Как получить ссылку на корень 
:(
    Опции темы
Гость_SID_M
Дата 16.3.2005, 13:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Смысл вот в чем...
пропарсил XML, для этого написал свою модель дерева. потом есть необходимось обойти созданное дерево.
Проблема в том, что получить корень можно из модели.
Дак вопрос в том как можно получить корень из готового дерева
  Вверх
AntonSaburov
Дата 16.3.2005, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 118



JTree.getModel().getRoot()
PM MAIL WWW ICQ   Вверх
Hidrag
Дата 1.2.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



И у меня вопрос по JTree, можно ли как нибудь отобразить только листья, без нодов, например шелкнул мышкой по кнопке отобразилось как дерево, щелкнул по другой - отобразилось как список? Или нужно наследовать и переопределять что нибудь?


--------------------
user posted image
PM WWW ICQ   Вверх
powerOn
Дата 1.2.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



Тут нужно делать 2 компонента: JList и JTree. Между ними гонять одну собственную модель. Ну и, соответственно, показывать на экране либо лист, либо дерево...


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Hidrag
Дата 1.2.2007, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



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

буду думать дальше smile  smile 

..или каждый раз динамически создавать дерево и выводить как надо. Хранить списки нодов и списки листьев в колекции, ввести индексирование, для определения принадлежности листа ноду...


--------------------
user posted image
PM WWW ICQ   Вверх
w1nd
Дата 1.2.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Цитата(Hidrag @ 1.2.2007,  17:07)
а я думал сделать так, чтобы все листья перенеслись в корень, вот только как их потом назад вернуть...

буду думать дальше smile  smile 

..или каждый раз динамически создавать дерево и выводить как надо. Хранить списки нодов и списки листьев в колекции, ввести индексирование, для определения принадлежности листа ноду...

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

Это сообщение отредактировал(а) w1nd - 1.2.2007, 17:18


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Hidrag
Дата 1.2.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



в общем задача такая: написать класс - дерево, с возможностью отображения без нодов,
то есть делаю в маин классе:

Код

String node1="корень1";
String listik1="листик1";
...
MySuperKlass msk = new MySuperKlass();
msk.add(node1,listik1);
msk.add(node1,listik2);
msk.add(node1,listik3);
msk.add(node2,listik1);
msk.add(node2,listik2);
msk.add(node2,listik3);
....
jScrollPane jsp = new jScrollPane();
jsp.setViewportVies(msk);
....
msk.nodeVisible(true);
...


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

впринципе задачу сам себе поставил, не получится так, буду продумывать с подменой как вы и советуете, и будут вопросы: как мне удалить с фрэйма дерево и воткнуть на его место список в рантайме smile


--------------------
user posted image
PM WWW ICQ   Вверх
powerOn
Дата 1.2.2007, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



Цитата(Hidrag @  1.2.2007,  17:48 Найти цитируемый пост)
как мне удалить с фрэйма дерево и воткнуть на его место список в рантайме smile 

Как и всегда: методами  add и remove контейнера. И еще про validate() не стоит забывать.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Hidrag
Дата 2.2.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



а можно написать класс, реализовать в нем интерфейсы TreeModel и ListModel и использовать как общую модель для листа и дерева?

Это сообщение отредактировал(а) Hidrag - 2.2.2007, 16:41


--------------------
user posted image
PM WWW ICQ   Вверх
powerOn
Дата 2.2.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



Цитата(Hidrag @  2.2.2007,  16:39 Найти цитируемый пост)
а можно написать класс, реализовать в нем интерфейсы TreeModel и ListModel и использовать как общую модель для листа и дерева?


Если вы считаете что это приведёт к необходимому результату, то конечно же можно. Но мне кажется дело не столько в модели, сколько в виде.
Если у вас будет такая модель, что поддерживает 2 интерфейса (TreeModel и ListModel), то это неплохо, но главное чтобы вид умел эти модели отображать.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.