Более строгие проверки нарушений EDT в веществе

егрировалвещество Посмотрел мое приложение и столкнулся с рядом проблем, связанных с его внутренней процедурой проверки EDT (Event Dispatch Thread). Вещество абсолютно отказывается строить классы пользовательского интерфейса за пределами EDT. Я сделал много Swing / AWT и знаю большинство правил, касающихся EDT. Я использую SwingWorker, SwingUtilties.invokeLater для изменения компонентов. Я всегда думал, что компоненты могут бытьИЗГОТОВЛЕНА за пределами EDT, но должен бытьпонял а такжеманипулировали на EDT. Другими словами, вы можете создавать и устанавливать значения по умолчанию в фоновом режиме, но вызовом pack / setVisible должен быть EDT, а также любые последующие вызовы для манипулирования компонентом.

Причина, по которой я спрашиваю, состоит в том, что у меня есть особенно «навороченное» окно для создания, включающее множество виджетов, состояний и ресурсов (много значков). Ранее я построил окно на фоновом методе SwingWorker и сделал окно видимым в готовом методе. Никогда не было ни одной проблемы. После переключения на Вещество внутренняя проверка EDT кусает меня.

Я был в состоянии изменить код, чтобы обойти это. Я могу построить на EDT, который не является хорошим решением, поскольку все приложение будет блокироваться. Я также могу рефакторинг еще больше и стараюсь изо всех сил загружать все дополнительные ресурсы за пределами EDT.

Завершение ... Безопасно лисооружать Виджеты Swing / AWT НЕ в ветке отправки событий?

Ответы на вопрос(2)

Ваш ответ на вопрос