Как известно большинству Java-программистов, обновления графического интерфейса Swing должны выполняться только в потоке диспетчеризации событий AWT, и рекомендуется, чтобы долго выполняющиеся процессы выполнялись в «рабочем» потоке, а обновления отправлялись в поток диспетчеризации событий с использованием SwingUtilities.invokeAndWait()
или SwingUtilities.invokeLater()
.
Как вы не позволяете пользователю продолжить работу с приложением, пока завершается длительный процесс? Вы выделяете серые элементы управления, а затем разрешаете рабочему потоку повторно включать их с помощью вызовов SwingUtilities
, упомянутых выше?
Есть ли лучший альтернативный шаблон?