Графический интерфейс Java зависает при нажатии кнопки

У меня есть кнопка «Войти» в моем графическом интерфейсе, когда я нажимаю ее, она идет сюда:

private void loginBtn(java.awt.event.ActionEvent evt) {
    Login log = new Login(robot, driver, username, password, server, url);
    logStatus = log.login();
    Control check = new Control();
    check.loop();}

Ну, я бы хотел, чтобы когда я вхожу в систему, он входил в систему, а затем начинал воспроизводить цикл. Петля

проверка.цикл();

представляет собой бесконечный цикл, но графический интерфейс остается заблокированным в течение всего времени его запуска из-за действия, выполняемого с помощью кнопки входа в систему. Итак, как я могу вызвать цикл без блокировки графического интерфейса?


person Davide Melis    schedule 26.06.2017    source источник
comment
опубликуйте петлю.   -  person Kaushal28    schedule 26.06.2017
comment
Ну, вы не должны вводить бесконечный цикл внутри обработчика событий. Событие выполняется в потоке отправки событий. Его следует использовать только для быстрых операций. В противном случае... ну... графический интерфейс зависает.   -  person RealSkeptic    schedule 26.06.2017
comment
actionPerformed уже находится в потоке пользовательского интерфейса. check.loop() следует выполнять в отдельном потоке, отличном от пользовательского интерфейса. Это разгрузит пользовательский интерфейс. Тоже бесконечный цикл? Наличие бесконечного цикла даже в отдельном потоке сделает часть вашего процессора бесполезной.   -  person SomeDude    schedule 26.06.2017
comment
Но как я могу вызвать цикл после нажатия кнопки входа, если я не вызываю его внутри обработчика событий? @сваса   -  person Davide Melis    schedule 26.06.2017
comment
Вы ознакомились с руководством по Swing concurrency?   -  person RealSkeptic    schedule 26.06.2017
comment
Я собираюсь попробовать, спасибо. (Это мой первый графический интерфейс ^^)   -  person Davide Melis    schedule 26.06.2017
comment
@DavideMelis Ознакомьтесь с SwingWorker и примерами. здесь — это то, что вам нужно   -  person SomeDude    schedule 26.06.2017
comment
Реальное спасибо, ребята! Я застрял на нем на несколько дней   -  person Davide Melis    schedule 26.06.2017