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

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

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

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

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

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

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

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

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


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