The Swing package, which is now a standard API package in Java 2, offers a new timer utility. This utility is implicitly threaded and lets you create as many timer threads as required, while taking away the burden of managing these threads. To use a Swing timer, you need an object of the class java.swing.Timer and an implementation of the ActionListener class that will be notified when the timer expires. The Timer constructor takes in two arguments:
public Timer (int delay, ActionListener l)
The first parameter is the time interval in milliseconds. The second is the ActionListener that is notified when this interval expires. This listener is automatically added to the list of listeners for the timer. You may add (or remove) additional listeners by calling the addActionListener() (or removeActionListener()) methods of the Timer class.
In order to use the timer, construct it by calling the Timer constructor and then call the start() method on the timer. Once the timer is running, it continues until the timer interval expires, which results in an ActionEvent being sent to any registered ActionListeners. To stop the timer, call the stop() method on the Timer class. To restart the timer, call the restart() method on the Timer class.