Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing JTable - как перерисовать таблицу после изменения данных в ней? / 8 сообщений из 8, страница 1 из 1
20.02.2011, 21:42
    #37127056
ezhik97
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing JTable - как перерисовать таблицу после изменения данных в ней?
Есть таблица, наследник от JTable. В ней своя модель, наследник от JTableModel. В модели данные хранятся в ArrayList.
Извне другой объект (обработчик события) добавляет в модель (список ArrayList) строку данных. Далее вызывает метод таблицы invalidate().
Дело в том, что при этом таблица обновляется с задержкой. Выглядит это так.
Я тыкаю кнопку добавления данных, а в таблице строка появляется со случайной задержкой от нуля до почти секунды.

Вопрос: каким сказать таблице, что бы она обновила свой вид НЕМЕДЛЕННО?
...
Рейтинг: 0 / 0
20.02.2011, 22:06
    #37127077
eros2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing JTable - как перерисовать таблицу после изменения данных в ней?
ezhik97,

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

У AbstractTableModel же есть методы fire* которые следует дёргать при изменении данных в модели, а они уже сообщают таблице, что данные были изменены.
...
Рейтинг: 0 / 0
21.02.2011, 03:37
    #37127260
pilot911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing JTable - как перерисовать таблицу после изменения данных в ней?
насколько я понимаю, invalidate() помещает в очередь событий swing сообщение о том, что таблицу нужно перерисовать... возможно, поэтому и происходит задержка
...
Рейтинг: 0 / 0
21.02.2011, 06:50
    #37127291
Alexey Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing JTable - как перерисовать таблицу после изменения данных в ней?
ezhik97,

надо не invalidate() вызывать
а наследовать свою модель от AbstractTableModel и вызывать метод fireTableDataChanged() или другие fireXXX() подходящие методы.
...
Рейтинг: 0 / 0
21.02.2011, 10:15
    #37127544
ezhik97
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing JTable - как перерисовать таблицу после изменения данных в ней?
Alexey Kuznetsov,

Понял, вечерком буду пробовать. Спасибо.
...
Рейтинг: 0 / 0
21.02.2011, 21:55
    #37129284
ezhik97
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing JTable - как перерисовать таблицу после изменения данных в ней?
ezhik97Alexey Kuznetsov,

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

Отлично, все заработало как надо. Спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
04.06.2018, 18:11
    #39655132
Slava_PRO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing JTable - как перерисовать таблицу после изменения данных в ней?
Alexey Kuznetsov,
А можно поподробнее и с примером пожалуйста!
Заранее спасибо!
...
Рейтинг: 0 / 0
05.06.2018, 10:28
    #39655398
Valentin Kolesnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Swing JTable - как перерисовать таблицу после изменения данных в ней?
Slava_PRO,

С уважением. Валентин
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing JTable - как перерисовать таблицу после изменения данных в ней? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]