Thread.sleep
- это долгосрочное задание.Когда вы выполняете такую задачу в EDT, она блокирует выполнение всех запросов на перерисовку.Все запросы на перерисовку, находящиеся на рассмотрении и отправленные во время фазы ожидания, ставятся в очередь для дальнейшей обработки.
В результате, когда EDT выходит из фазы sleep
, он объединяет все такие запросы на перерисовку (если объединение выполняетсявключен, который является свойством по умолчанию) в один перекрас, который выполняется.Если объединение не включено, то все запросы в очереди выполняются последовательно без промежутка времени.В результате кажется, что пользовательский интерфейс не обновился.
Для исправления ситуации используйте timer
, который периодически срабатывает через определенные промежутки времени.