Переопределить метод done
- этот метод будет вызван, когда работа будет завершена.У Oracle есть подробное руководство: Повышение производительности приложений с помощью SwingWorker в Java SE 6
Также см. Еще один вопрос SO: Как использовать SwingWorker в Java?
Вы можете позвонить get
, чтобы получить результаты, но если рабочий не завершен, поток заблокируется, пока рабочий не будет завершен.Это означает, что если вы позвоните по номеру get
из потока рассылки событий (EDT), ваш GUI будет не отвечать, если рабочий не закончен.Вы можете позвонить isDone
, чтобы определить, завершен ли работник.
Наконец, вы можете прикрепить прослушиватель изменения свойства, чтобы получать уведомления о прогрессе работника, в том числе, когда он завершает свою задачу.Первая ссылка, которую я разместил, дает пример этого.