GUI зависает во время цикла for после нажатия кнопки

Более подробно, у меня есть цикл, который принимает математические операции, и случай переключения, в котором он переводит эти операции для применения сложения или вычитания... и т. Д.

Цикл (int i) - это число операций, которые он читает. Условие также является частью введенных операций, оно также находится внутри корпуса переключателя. Таким образом, всякий раз, когда пользователь вводит это условие и число (например, j), которое должен повторить цикл, программа должна брать j и выравнивать его с i, но оно останавливается. Я хочу, чтобы он переходил к той части цикла, где пользователь определяет правильное условие.

GUI зависает, когда пользователь нажимает JButton, так что операции, написанные в TextArea, должны быть рассчитаны.

1 ответ

GUI зависает, когда пользователь нажимает кнопку JButton

Код, вызванный в слушателе, выполняется на Event Dispatch Thread (EDT), EDT отвечает за обработку событий и рисование GUI. Таким образом, если вы выполняете долго выполняющиеся задачи, когда нажимаете на кнопку, вы заставляете графический интерфейс зависать до завершения выполнения задачи.

Вам необходимо выполнить долгосрочную задачу в отдельном потоке. Один из способов сделать это - использовать Swing Worker, Прочитайте раздел учебника Swing по параллелизму для получения дополнительной информации о EDT а также SwingWorker,

Другие вопросы по тегам