TimerTask запускается только один раз

У меня есть задание timer:

timer.schedule(new task1(), 1000*minutes);

Задание:

class task1 extends TimerTask {
        @Override

    public void run()
    {
            try {
                task();
            } catch (SAXException ex) {
                Logger.getLogger(task1.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ParserConfigurationException ex) {
                Logger.getLogger(task1.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(task1.class.getName()).log(Level.SEVERE, null, ex);
            } catch (URISyntaxException ex) {
                Logger.getLogger(task1.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InterruptedException ex) {
                Logger.getLogger(task1.class.getName()).log(Level.SEVERE, null, ex);
            }
    }
    public void task() throws SAXException, ParserConfigurationException, IOException, URISyntaxException, InterruptedException {
        Pinner_xml t = new Pinner_xml();
        t.xml(frame.t1.getText());

        frame.output.append("task 1 \n");
        System.out.println("task 1 is running");
    }
}

frame это мое имя кадра и output это текстовое поле Почему я запускаю задачу, все это "задача 1 выполняется" в диалоговом окне вывода в Netbeans, и задача запускается только один раз.

3 ответа

Используйте javax.swing.Timer для Swing, так как все делается на EDT (по умолчанию) с использованием класса Timer, что является обязательным условием, см. Раздел " Использование Timer". Еще один связанный пример обновления JButton на Timer, а другой - для работы с Swing Timer и Scrolling Text.

Для повторного выполнения задачи используйте Timer.schedule(TimerTask task, long delay, long period) или же scheduleAtFixedRate методы

Прочтите документацию по таймеру. Существует еще один переопределенный метод для многократного выполнения задачи. Вы используете метод, который выполняется только один раз. Вы можете использовать

scheduleAtFixedRate(задача TimerTask, длительная задержка, длительный период)

или же

расписание (задача TimerTask, длительная задержка, длительный период)

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