Я читал несколько сообщений, и я не смог найти четкого ответа на мой вопрос.Повторите выполнение SwingWorker в Java
У меня есть приложение (Основной фрейм), у которого есть кнопка запуска и остановки, и только jTextArea. Когда пользователь нажимает кнопку «Старт», создается экземпляр класса SwingWorker и запускает (execute()) задачу. Эта задача - подключиться к базе данных и выполнить некоторые проверки. Для каждой проверки он корректно обновляет jTextArea, и все в порядке. Когда нажата кнопка остановки, я устанавливаю isCancelled() в true и, следовательно, фоновый процесс останавливается (у меня есть соответствующие проверки внутри SwingWorker, чтобы остановить выполнение и т. Д.).
Что я хочу сделать, когда пользователь нажимает «Начать», SwingWorker запускает выполнение, спящий на несколько минут, а затем повторяет ту же задачу. Когда кнопка «Стоп» нажата, все останавливается.
Как я могу это достичь? Я понимаю, что фоновый процесс SwingWorker должен запускаться один раз. Какими были бы другие способы сделать это? Обратите внимание, что причиной, по которой я выбрал SwingWorker, было то, что я хотел обновить jTextArea во время фонового процесса.
Заранее спасибо.
SwingWorker не предназначен для этого, чтобы использовать стандартную рабочую нить, но вывод в GUI Swing должен быть завернут в invokeLater – mKorbel