![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| freshAngel |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Привет.
Есть такая структура дерева: [-] Корень [-] Ветка 1 Значение 1 Значение 2 Значение 3 Значение 4 Значение 5 Как получить индексный номер выбранного значения!? Сейчас у меня выглядит так:
Что нужно добавить, что-бы получить Index выбранной в данный момент ветки!? И еще вопрос, что-бы не плодить темы. Как получить событие, когда пользователь начал/закончил редактировать выбранную ветку дерева!? Это сообщение отредактировал(а) freshAngel - 27.3.2010, 10:05 |
|||
|
||||
| jk1 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 21 Всего: 75 |
Насчет перехвата событий. Вот самый общий способ
Если вы назначали дереву собственный Editor, то возможностей гораздо больше. Для примера, если в назначили дереву JTextField в качестве Editor'а, то на это текстовое поле можно будет повесить CaretListener и получать события от каждого введенного или удаленного символа при редактировании ячейки дерева. Про индексный номер Что вы понимаете под "индексным номером"? Для ячейки дерева определено понятие row, вот так можно получить массив row для выбранных ячеек таблицы
Это сообщение отредактировал(а) jk1 - 27.3.2010, 10:23 -------------------- Opinions are like assholes — everybody has one |
||||
|
|||||
| freshAngel |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Если я нажал мышкой на: Значение 2, то в выводе хочу получить: 2 Если выбрал: Значение 5, то в выводе хочу получить 5 и т.д. В зависимости от этого индекса планирую выбирать таблицу в БД, куда записывать измененные данные... Это сообщение отредактировал(а) freshAngel - 27.3.2010, 10:37 |
||||
|
|||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 21 Всего: 75 |
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| freshAngel |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Спасибо большое! |
||||
|
|||||
| freshAngel |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Еще вопрос, а как из этого потом получить новое имя нода!? Которое изменил пользователь!!! Если вставить снова
Выдает старое название ветки... Это сообщение отредактировал(а) freshAngel - 27.3.2010, 11:33 |
||||||||
|
|||||||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 21 Всего: 75 |
Такой вариант подойдет?
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| freshAngel |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Да. Все работает. Спасибо! А как можно перерисовать модель дерева!? |
||||
|
|||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 21 Всего: 75 |
Модель дерева не рисуется на экране, рисуется view, а модель - это просто способ хранения данных для view. Перерисовать само дерево в общем можно вызовом метода repaint();.
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| freshAngel |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Спасибо! А как сделать вставку сразу нескольких веток в дерево!? Например: Ветка1 - > Ветка 1.1. -> Ветка 1.1.1 и т.д. Делаю так:
DefaultMutableTreeNode tmp = new DefaultMutableTreeNode("1"); model.insertNodeInto(tmp, sel, sel.getChildCount()); DefaultMutableTreeNode tmp1 = new DefaultMutableTreeNode("1.1"); insertNodeInto(tmp1, tmp, sel.getChildCount()); [/code] Ветка 1.1 не вставляется в 1 Вообще проблема в том, что я делаю парсинг БД, потом строю дерево. Есть функция добавления узлов. При добавлении узла он записывается в БД, а в дереве не появляется. Поэтому тут два пути: 1. Снова сделать парсинг и подхватить инфу о новой ветки дерева. Но тут я не знаю как очистить все дерево, что-бы снова построить его элементы. 2. Добавить нужные узлы вручную, через модель. Работает.
Передал в метод количество детей ранее созданного узла. Это сообщение отредактировал(а) freshAngel - 28.3.2010, 08:36 |
||||||
|
|||||||
![]()
|
| Правила форума "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. |