Как реализовать простую задачу в Java Swing
У меня есть приложение с графическим интерфейсом, которое становится довольно медленным. Я хочу начать вводить синхронизацию для различных задач с графическим интерфейсом - однако многие из наших действий с графическим интерфейсом запускают другие действия, которые затем "вызывают позже". инициировать другие действия.
В конце концов, все успокаивается, и больше нечего делать. В настоящее время я хочу остановить таймер и сообщить, как долго этот GUI & quot; action & quot; взял.
Я решил, что способ сделать это, чтобы реализовать метод под названиемinvokeOnceIdle(Runnable task)
, Метод выполнит поставленную задачу только после того, как AWTEventQueue станет "пустым". то есть поставляемая «задача»; должно быть последним в очереди.
Один из способов сделать это состоит в том, если существует способ указать «низший» уровень. приоритетSwingUtilities.invokeLater
- но это невозможно.
Затем я посмотрел, смогу ли я «invokeLater» quot; Runnable, который проверяет, является ли очередь событий «пустой» - но публичного способа увидеть, является ли очередь событий фактически пустой, нет.
Какой лучший способ сделать это?