Я хотел бы иметь java.utils.Timer со сбрасываемым временем в java.I нужно установить однократное событие, которое произойдет через X секунд. Если между временем создания таймера и X секунд ничего не происходит, событие происходит как обычно.
Если, однако, до истечения X секунд, я решил, что событие должно произойти после Y секунд вместо этого, тогда я хочу, чтобы время таймера указывало на reset его время, чтобы событие произошло в Y секунд. Например. таймер должен иметь возможность сделать что-то вроде:
Timer timer = new Timer();
timer.schedule(timerTask, 5000); //Timer starts in 5000 ms (X)
//At some point between 0 and 5000 ms...
setNewTime(timer, 8000); //timerTask will fire in 8000ms from NOW (Y).
Я не вижу способа сделать это с помощью таймера utils, как если бы вы вызывали cancel(), вы не можете планировать его снова.
Единственный способ, с которым я столкнулся с репликацией этого поведения, - использовать javax.swing.Timer и включить остановку исходного таймера и создание нового. т.е.:
timer.stop();
timer = new Timer(8000, ActionListener);
timer.start();
Есть ли более простой способ?