Android APK трек приложение устанавливается без Google Play

Swing - это единственная структура потока. То есть, существует один поток, ответственный за отправку всех событий всем компонентам, включая запросы на перерисовку.

Любое действие, которое останавливает / блокирует этот поток, приведет к зависанию вашего пользовательского интерфейса.

Первое правило Swing, НИКОГДА не запускать какие-либо блокирующие или трудоемкие задачи в Event Dispatching Thread, вместо этого вы должны использовать фоновый поток.

Это запустит вас во второе правило Swing , Никогда не создавать, изменять и не взаимодействовать с каким-либо компонентом пользовательского интерфейса вне EDT.

Существует несколько способов исправить это. Вы можете использовать SwingUtilities.invokeLater или SwingWorker.

SwingWorker, как правило, проще, поскольку он предоставляет ряд простых в использовании методов, которые автоматически пересинхронизируют вызовы к EDT.

Прочитать Параллельность в Swing

Обновлено

Просто так вы понимаете;)

Ваш MainLoop метод не должен выполняться в контексте EDT, это очень плохо.

Кроме того, вы не должны взаимодействовать с каким-либо компонентом пользовательского интерфейса от любого другого потока, кроме EDT.

0
задан Community 23 May 2017 в 12:31
поделиться