JavaTM 2 Platform
Std. Ed. v1.3

javax.swing
Class Timer

java.lang.Object
  |
  +--javax.swing.Timer
All Implemented Interfaces:
Serializable

public class Timer
extends Object
implements Serializable

Causes an action to occur at a predefined rate. For example, an animation object can use a Timer as the trigger for drawing its next frame. For documentation and examples of using timers, see How to Use Timers in The Java Tutorial.

Each Timer has a list of ActionListeners and a delay (the time between actionPerformed() calls). When delay milliseconds have passed, a Timer sends the actionPerformed() message to its listeners. This cycle repeats until stop() is called, or halts immediately if the Timer is configured to send its message just once.

Using a Timer involves first creating it, then starting it using the start() method.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. A future release of Swing will provide support for long term persistence.

See Also:
Serialized Form

Field Summary
protected  EventListenerList listenerList
           
 
Constructor Summary
Timer(int delay, ActionListener listener)
          Creates a Timer that will notify its listeners every delay milliseconds.
 
Method Summary
 void addActionListener(ActionListener listener)
          Adds an actionListener to the Timer
protected  void fireActionPerformed(ActionEvent e)
          Notify all listeners that have registered interest for notification on this event type.
 int getDelay()
          Returns the Timer's delay.
 int getInitialDelay()
          Returns the Timer's initial delay.
 EventListener[] getListeners(Class listenerType)
          Return an array of all the listeners of the given type that were added to this timer.
static boolean getLogTimers()
          Returns true if logging is enabled.
 boolean isCoalesce()
          Returns true if the Timer coalesces multiple pending performCommand() messages.
 boolean isRepeats()
          Returns true if the Timer will send a actionPerformed() message to its listeners multiple times.
 boolean isRunning()
          Returns true if the Timer is running.
 void removeActionListener(ActionListener listener)
          Removes an ActionListener from the Timer.
 void restart()
          Restarts a Timer, canceling any pending firings, and causing it to fire with its initial dely.
 void setCoalesce(boolean flag)
          Sets whether the Timer coalesces multiple pending ActionEvent firings.
 void setDelay(int delay)
          Sets the Timer's delay, the number of milliseconds between successive actionPerfomed() messages to its listeners
 void setInitialDelay(int initialDelay)
          Sets the Timer's initial delay.
static void setLogTimers(boolean flag)
          Enables or disables the timer log.
 void setRepeats(boolean flag)
          If flag is false, instructs the Timer to send actionPerformed() to its listeners only once, and then stop.
 void start()
          Starts the Timer, causing it to send actionPerformed() messages to its listeners.
 void stop()
          Stops a Timer, causing it to stop sending actionPerformed() messages to its Target.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

listenerList

protected EventListenerList listenerList
Constructor Detail

Timer

public Timer(int delay,
             ActionListener listener)
Creates a Timer that will notify its listeners every delay milliseconds.
Parameters:
delay - The number of milliseconds between listener notification
listener - An initial listener
See Also:
setInitialDelay(int), setRepeats(boolean)
Method Detail

addActionListener

public void addActionListener(ActionListener listener)
Adds an actionListener to the Timer

removeActionListener

public void removeActionListener(ActionListener listener)
Removes an ActionListener from the Timer.

fireActionPerformed

protected void fireActionPerformed(ActionEvent e)
Notify all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method.
See Also:
EventListenerList

getListeners

public EventListener[] getListeners(Class listenerType)
Return an array of all the listeners of the given type that were added to this timer.
Since:
1.3

setLogTimers

public static void setLogTimers(boolean flag)
Enables or disables the timer log. When enabled, a message is posted to System.out whenever the timer goes off.
Parameters:
flag - true to enable logging
See Also:
getLogTimers()

getLogTimers

public static boolean getLogTimers()
Returns true if logging is enabled.
Returns:
true if logging is enabled
See Also:
setLogTimers(boolean)

setDelay

public void setDelay(int delay)
Sets the Timer's delay, the number of milliseconds between successive actionPerfomed() messages to its listeners
See Also:
setInitialDelay(int)

getDelay

public int getDelay()
Returns the Timer's delay.
See Also:
setDelay(int)

setInitialDelay

public void setInitialDelay(int initialDelay)
Sets the Timer's initial delay. This will be used for the first "ringing" of the Timer only. Subsequent ringings will be spaced using the delay property.
See Also:
setDelay(int)

getInitialDelay

public int getInitialDelay()
Returns the Timer's initial delay.
See Also:
setDelay(int)

setRepeats

public void setRepeats(boolean flag)
If flag is false, instructs the Timer to send actionPerformed() to its listeners only once, and then stop.

isRepeats

public boolean isRepeats()
Returns true if the Timer will send a actionPerformed() message to its listeners multiple times.
See Also:
setRepeats(boolean)

setCoalesce

public void setCoalesce(boolean flag)
Sets whether the Timer coalesces multiple pending ActionEvent firings. A busy application may not be able to keep up with a Timer's message generation, causing multiple actionPerformed() message sends to be queued. When processed, the application sends these messages one after the other, causing the Timer's listeners to receive a sequence of actionPerformed() messages with no delay between them. Coalescing avoids this situation by reducing multiple pending messages to a single message send. Timers coalesce their message sends by default.

isCoalesce

public boolean isCoalesce()
Returns true if the Timer coalesces multiple pending performCommand() messages.
See Also:
setCoalesce(boolean)

start

public void start()
Starts the Timer, causing it to send actionPerformed() messages to its listeners.
See Also:
stop()

isRunning

public boolean isRunning()
Returns true if the Timer is running.
See Also:
start()

stop

public void stop()
Stops a Timer, causing it to stop sending actionPerformed() messages to its Target.
See Also:
start()

restart

public void restart()
Restarts a Timer, canceling any pending firings, and causing it to fire with its initial dely.

JavaTM 2 Platform
Std. Ed. v1.3

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.