Programmable Minuterie Java

J'aimerais avoir un java.utils.Minuterie avec un temps programmable en java.J'ai besoin de régler en une fois un événement de se produire dans les X secondes. Si rien ne se passe entre le moment de la minuterie a été créé et les X secondes, puis l'événement se produit comme d'habitude.

Si, toutefois, avant de les X secondes s'est écoulé, j'ai décider que l'événement devrait se produire après Y secondes au lieu de cela, je veux être en mesure de dire que la minuterie de réinitialisation de son temps, de sorte que l'événement se produit dans les Y secondes.
E. g. le minuteur doit être en mesure de faire quelque chose comme:

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).

Je ne vois pas le moyen de le faire à l'aide de la utils à rebours, comme si vous appelez annuler() vous ne pouvez pas planifier à nouveau.

La seule façon que je suis venu près de reproduire ce comportement est par l'utilisation de javax.swing.Minuterie et implique l'arrêt de l'original de la minuterie, et en créer un nouveau. c'est à dire:

timer.stop();
timer = new Timer(8000, ActionListener);
timer.start();

Est-il un moyen plus facile??

InformationsquelleAutor Lehane | 2008-08-28