Как сделать заказ по вычисленному значению в DQL

Thread.sleep является долговременной задачей. Когда вы выполняете такую ​​задачу в EDT, она блокирует выполнение всех запросов на перерисовку. Все запросы на перерисовку, которые ожидаются и которые были отправлены во время фазы сна, поставлены в очередь для будущей обработки.

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

Чтобы исправить ситуацию, используйте SwingTimer, который запускается периодически через определенные промежутки времени или SwingWorker.

13
задан SnailCoil 6 March 2013 в 20:40
поделиться