Я изучал это несколько часов и не нашел ничего, что могло бы помочь мне. У меня есть программа Windows Swing GUI, которая выполняет некоторую фоновую обработку в SwingWorker. При этом также используется диалоговое окно прогресса, позволяющее пользователю узнать, сколько времени займет фоновая обработка.
Первоначальный разработчик этой системы решил отключить ввод мыши и клавиатуры в пользовательский интерфейс, за исключением кнопки «Отмена» в диалоговом окне выполнения. Они сделали это, используя стеклянную панель, которая игнорирует все события мыши и клавиатуры.
Фактическая проблема заключается в том, что в случае пользовательской alt-tabs или заставки пользовательский интерфейс за стеклом никогда не перерисовывается. Диалог хода выполнения перерисовывается, но это происходит из-за того, что SwingWorker периодически вызывает перерисовку для обновления хода выполнения.
Мне хотелось бы получить совет, куда обратиться. Я не смог найти что-нибудь о перерисовке alt-tab в Java. Возможно, диалог прогресса является модальным по определению, не позволяя перекрасить EDT? Или, возможно, стеклянная панель предотвращает перекрашивание «скрытых» компонентов?
Спасибо,
Ryan