java.awt
Class EventQueue

java.lang.Object
  extended by java.awt.EventQueue

public class EventQueue
extends Object

This class manages a queue of AWTEvent objects that are posted to it. The AWT system uses only one event queue for all events.


Constructor Summary
EventQueue()
          Initializes a new instance of EventQueue.
 
Method Summary
protected  void dispatchEvent(AWTEvent evt)
          Dispatches an event.
static AWTEvent getCurrentEvent()
          Return the event currently being dispatched by the event dispatch thread.
static long getMostRecentEventTime()
          Returns the timestamp of the most recent event that had a timestamp, or the initialization time of the event queue if no events have been fired.
 AWTEvent getNextEvent()
          Returns the next event in the queue.
static void invokeAndWait(Runnable runnable)
          Causes runnable to have its run method called in the dispatch thread of the EventQueue.
static void invokeLater(Runnable runnable)
          This arranges for runnable to have its run method called in the dispatch thread of the EventQueue.
static boolean isDispatchThread()
          Return true if the current thread is the current AWT event dispatch thread.
 AWTEvent peekEvent()
          Returns the next event in the queue without removing it from the queue.
 AWTEvent peekEvent(int id)
          Returns the next event in the queue that has the specified id without removing it from the queue.
protected  void pop()
          Transfer any pending events from this queue back to the parent queue that was previously push()ed.
 void postEvent(AWTEvent evt)
          Posts a new event to the queue.
 void push(EventQueue newEventQueue)
          Allows a custom EventQueue implementation to replace this one.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EventQueue

public EventQueue()
Initializes a new instance of EventQueue.

Method Detail

getNextEvent

public AWTEvent getNextEvent()
                      throws InterruptedException
Returns the next event in the queue. This method will block until an event is available or until the thread is interrupted.

Returns:
The next event in the queue.
Throws:
InterruptedException - If this thread is interrupted while waiting for an event to be posted to the queue.

peekEvent

public AWTEvent peekEvent()
Returns the next event in the queue without removing it from the queue. This method will block until an event is available or until the thread is interrupted.

Returns:
The next event in the queue.

peekEvent

public AWTEvent peekEvent(int id)
Returns the next event in the queue that has the specified id without removing it from the queue. This method will block until an event is available or until the thread is interrupted.

Parameters:
id - The event id to return.
Returns:
The next event in the queue.

postEvent

public void postEvent(AWTEvent evt)
Posts a new event to the queue.

Parameters:
evt - The event to post to the queue.
Throws:
NullPointerException - If event is null.

invokeAndWait

public static void invokeAndWait(Runnable runnable)
                          throws InterruptedException,
                                 InvocationTargetException
Causes runnable to have its run method called in the dispatch thread of the EventQueue. This will happen after all pending events are processed. The call blocks until this has happened. This method will throw an Error if called from the event dispatcher thread.

Throws:
InterruptedException - If another thread has interrupted this thread.
InvocationTargetException - If an exception is thrown when running runnable.
Since:
1.2

invokeLater

public static void invokeLater(Runnable runnable)
This arranges for runnable to have its run method called in the dispatch thread of the EventQueue. This will happen after all pending events are processed.

Since:
1.2

isDispatchThread

public static boolean isDispatchThread()
Return true if the current thread is the current AWT event dispatch thread.


getCurrentEvent

public static AWTEvent getCurrentEvent()
Return the event currently being dispatched by the event dispatch thread. If the current thread is not the event dispatch thread, this method returns null.

Since:
1.4

push

public void push(EventQueue newEventQueue)
Allows a custom EventQueue implementation to replace this one. All pending events are transferred to the new queue. Calls to postEvent, getNextEvent, and peekEvent and others are forwarded to the pushed queue until it is removed with a pop().

Throws:
NullPointerException - if newEventQueue is null.

pop

protected void pop()
            throws EmptyStackException
Transfer any pending events from this queue back to the parent queue that was previously push()ed. Event dispatch from this queue is suspended.

Throws:
EmptyStackException - If no previous push was made on this EventQueue.

dispatchEvent

protected void dispatchEvent(AWTEvent evt)
Dispatches an event. The manner in which the event is dispatched depends upon the type of the event and the type of the event's source object.

Throws:
NullPointerException - If event is null.

getMostRecentEventTime

public static long getMostRecentEventTime()
Returns the timestamp of the most recent event that had a timestamp, or the initialization time of the event queue if no events have been fired. At present, only InputEvents, ActionEvents, InputMethodEvents, and InvocationEvents have timestamps, but this may be added to other events in future versions. If this is called by the event dispatching thread, it can be any (sequential) value, but to other threads, the safest bet is to return System.currentTimeMillis().

Returns:
the most recent timestamp
Since:
1.4
See Also:
InputEvent.getWhen(), ActionEvent.getWhen(), InvocationEvent.getWhen(), InputMethodEvent.getWhen()