title: Resettable Java Timer
body: <p>I'd like to have a java.utils.Timer with a resettable time in java.I need to set a once off event to occur in X seconds. If nothing happens in between the time the timer was created and X seconds, then the event occurs as normal. </p>
  
  <p>If, however, before X seconds has elapsed, I decide that the event should occur after Y seconds instead, then I want to be able to tell the timer to reset its time so that the event occurs in Y seconds.
   E.g. the timer should be able to do something like:</p>
  
  <pre><code>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).
  </code></pre>
  
  <p>I don't see a way to do this using the utils timer, as if you call cancel() you cannot schedule it again.</p>
  
  <p>The only way I've come close to replicating this behavior is by using javax.swing.Timer and involves stopping the origional timer, and creating a new one. i.e.: </p>
  
  <pre><code>timer.stop();
  timer = new Timer(8000, ActionListener);
  timer.start();
  </code></pre>
  
  <p>Is there an easier way??</p>