GUI зависает во время цикла for после нажатия кнопки
Более подробно, у меня есть цикл, который принимает математические операции, и случай переключения, в котором он переводит эти операции для применения сложения или вычитания... и т. Д.
Цикл (int i) - это число операций, которые он читает. Условие также является частью введенных операций, оно также находится внутри корпуса переключателя. Таким образом, всякий раз, когда пользователь вводит это условие и число (например, j), которое должен повторить цикл, программа должна брать j и выравнивать его с i, но оно останавливается. Я хочу, чтобы он переходил к той части цикла, где пользователь определяет правильное условие.
GUI зависает, когда пользователь нажимает JButton, так что операции, написанные в TextArea, должны быть рассчитаны.
1 ответ
GUI зависает, когда пользователь нажимает кнопку JButton
Код, вызванный в слушателе, выполняется на Event Dispatch Thread (EDT)
, EDT отвечает за обработку событий и рисование GUI. Таким образом, если вы выполняете долго выполняющиеся задачи, когда нажимаете на кнопку, вы заставляете графический интерфейс зависать до завершения выполнения задачи.
Вам необходимо выполнить долгосрочную задачу в отдельном потоке. Один из способов сделать это - использовать Swing Worker
, Прочитайте раздел учебника Swing по параллелизму для получения дополнительной информации о EDT
а также SwingWorker
,