![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 8 Всего: 9 |
в общем есть таблица к примеру из двух колонок в первой Boolean вторая String, обе колонки редактируемые!
дак вот нужно сделать так что б когда я начал редактировать стринговую ячейку, автоматом проставлялась галочка в первой колонке.. в общем то маус листенер с отловлей даблклика не катит.... с отловлей обычного клика тожже не катит так как еще редактирование ячейки не началось... плюс еще можно редактирование и без мыхи начать , с помощью клавиатуры.... подскажите какой листенер юзать и как -------------------- SCJP 6 |
|||
|
||||
| jManiak |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 6.2.2007 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Ну как вариант, можно создать свой класс extends AbstractTableModel. В нем прописываешь в методе setValueAt() все что нужно. т.е. в нем прописываешь сохранение саоих данных куда тебе надо + делаешь изменение определенной ячейки в нужном тебе столбце.
|
|||
|
||||
| dorogoyIV |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
boolean isEditing()
Returns true if a cell is being edited. |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 8 Всего: 9 |
нипонял а вот это интерестное предложение! сейчас буду пробвать! -------------------- SCJP 6 |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 8 Всего: 9 |
в общем то прокатило.. но есть одно но.. чекбокс отрепейнтиваеться только после какого то действия... в общем то нужно определить момент когда мне обновить таблицу нужно? подскажите варианты вот так вот я галочку проставляю теперь: это в моделе метод
-------------------- SCJP 6 |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 8 Всего: 9 |
есть конечно такой вариант :
но это есть гонево -------------------- SCJP 6 |
|||
|
||||
| jManiak |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 6.2.2007 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Table.updateUI()?
|
|||
|
||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
Нужно выполнять некоторые действия (править определенную колонку) перед начало редактирования другой колонки - я правильно понял? Если так, то специального листнера для этого вроде бы нет. Есть листнеры на окончания редактирования (на нормальное и аварийное). Можно отловить начальное редактирование по вызову метода
у интрерфеса TableCellEditor. Он вызывается перед началом редактирования и должен вернуть текущий редактор (например JComboBox). Перед возвратом как раз и можно выполнить требуемые действия, благо текущие таблица, строка и колонка передаются. Таблица обычно использует DefaultCellEditor для управления процессом редактирования. Этот едитор сам ничего не редактирует, он просто подставляет элементы для редактирования (checkbox напрмер). Этот же едитор используется и в JTree. Если его функционлаьность не нужна (а она обычно не нужна), то наследуешь класс от его предка AbstractCellEditor и юзаешь уже его (редактор привязывается к колонке - ну это так, на всякий случай |
|||
|
||||
| dorogoyIV |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
le_chat, а я вот понял не так как ты... я подумал, что просто не перерисовывается таблица. , даже не таблица, а чекбокс.
получается, что надо чекбокс репейнтить постоянно (почти). конечно проще всего запустить поток, и пусть он перерисовывает чекбокс постоянно. или и не правильно понял??? |
|||
|
||||
| le_chat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
думаю что лучше уж пусть пояснит автор |
|||
|
||||
| goodday1941 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 8 Всего: 9 |
этот вариант отрабатывает как мне нужно... но постоянный репейнт меня не возбуждает если честно
ну это что то вообще из ряда анриал действий... мне блин репейнт жалко вызывать при сете, а Вы мне предлагаете поток слушатель создать... да по сути тот же репейнт такс... значит не совсем понял.. тоесть вы мне предлагаете переопределить метом getTableCellEditorComponent в AbstractCellEditor? в общем то вариант конечно имеет право на жизнь.. нужно будет подумать над ним.... ПС.. всем спасибо за участие в дискусии -------------------- SCJP 6 |
||||
|
|||||
| w38 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.12.2006 Где: Украина, Одесса Репутация: нет Всего: нет |
AbstractTableModel.fireTableCellUpdated
Самый детализированный вариант события
|
|||
|
||||
![]()
|
| Правила форума "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. |