Возможно, вы можете использовать ProgressMonitor ?
Из документации API :
Принятие решения об использовании индикатора выполнения или монитора прогресса
Используйте монитор прогресса, если:
- Требуется простой способ отображения прогресса в диалоговом окне.
- Выполняемая задача является вторичной, и пользователь может не интересоваться ее выполнением. Монитор прогресса позволяет пользователю закрывать диалоговое окно, пока задача еще выполняется.
- Вы хотите простой способ отмены задания . Монитор прогресса предоставляет графический интерфейс для пользователя, чтобы отменить задачу. Все, что вам нужно сделать, это вызвать метод isCanceled монитора прогресса, чтобы узнать, нажал ли пользователь кнопку Отмена.
Только некоторые мысли, надеюсь, это поможет.