Сохранение таймера свинга после завершения основного метода
Я пытаюсь создать программу для выполнения простой задачи и выводить каждыйx
секунд. Я также хочу, чтобы программа работала, пока я не решу вручную закрыть программу.
Я пытался реализовать это с помощью таймера Swing, так как считаю, что это лучший способ. Проблема в том, что я не уверен, как продолжить выполнение программы после завершения основного метода. Так, например, у меня есть:
static ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
try {
//do stuff
} catch (Exception e) {
e.printStackTrace();
}
}
};
public static void main(String[] args) throws Exception{
Timer timer = new Timer(3000, taskPerformer);
timer.start();
}
который просто заканчивает выполнение немедленно. Я могу избежать проблемы, уложив текущий поток выполнения в спящий режимThread.currentThread().sleep(..)
, но это похоже на неудачную работу, и в конечном итоге будет конечным по продолжительности. Я также могу сделать время (правда), но я считаю, что это плохая практика.
Мой вопрос заключается в том, как получить желаемое постоянное поведение и есть ли лучший способ, чем использование таймеров Swing.
Благодарю.