Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задержка обновления JTextField

17K
12 апреля 2006 года
firemink
2 / / 12.04.2006
В приложении идет последовательная смена форм (в одном окне сменяют друг друга объекты JPanel). В одном из этих JPanel стоит GUI таймер (javax.swing.Timer), который 4 раза в секунду обновляет цифру в JTextField

{
int num = ...
jTextFieldAcceptedSum.setText(Integer.toString(num)); jTextFieldAcceptedSum.repaint();
}

Некоторое время все идет в порядке, затем после нескольких циклов смены панелей начинает тормозить отображение нового текста в JTextField. Экспериментальным путем установлено что и прорисовка и setText идут регулярно (хотя прорисовка иногда тоже подтормаживает), зато с опозданием вызываются события propertyChange в JTextField (выяснил когда прикрепил к нему PropertyChangeListener). Рисоваться именно измененное значение начинает с задержкой.
Никаких ресурсоемких вычислений-прорисовок в приложении нет, данные берутся из второго потока, синхронизации предусмотрены, лог показывает что данные событие таймера GUI-поток берет вовремя.

Как поправить пока не придумал.

Изменения периодичности таймера от 150 до 2000 миллисекунд на проблему не влияют, добавление-удаление repaint(), validate() для JTextField и окна - тоже.
17K
17 апреля 2006 года
firemink
2 / / 12.04.2006
Разобрался, Swing непричем...
Разбухает буфер, из которого соседний поток берет данные для обновления, которые затем рисует поток GUI, а кажется что данные поздно прорисовались, а не что они поздно пришли...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог