Мне нужен Timer
, что basicaly делает что-то каждые t секунд. Но я хочу иметь возможность изменять период таймера, при котором таймер повторяет задачу. Я написал что-то вроде этого:Таймер Java с фиксированной задержкой
public Bot() {
timer = new Timer();
timer.schedule(new Task(), 1000, moveTime = 1000);
}
public class Task extends TimerTask {
@Override
public void run() {
System.out.println("Time Passed from last repeat:" + movetime)
moveTime += 1000;
}
Таким образом, после 1000мс оттянуть запускается таймер и повторяется каждые moveTime
мс. Проблема в том, что даже если я увеличил movetime
на 1000, таймер всегда запускается с начальной задержкой (1000), но значение movetime
увеличивается (2000,3000,4000 и т. Д.) Каждый раз, когда таймер вызывает run()
.
Я пропущу что-то или что у меня есть для повторения задачи каждый 't' второй, когда 't' является переменной?
Спасибо.
В контексте свинг, [ 'javax.swing.Timer'] (http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html) поддерживает 'setDelay()'. – trashgod