Class InvocationEvent
- All Implemented Interfaces:
ActiveEvent, Serializable
run() method on a Runnable
when dispatched by the AWT event dispatcher thread. This class can
be used as a reference implementation of ActiveEvent rather
than declaring a new class and defining dispatch().
Instances of this class are placed on the EventQueue by calls
to invokeLater and invokeAndWait. Client code
can use this fact to write replacement functions for invokeLater
and invokeAndWait without writing special-case code
in any AWTEventListener objects.
An unspecified behavior will be caused if the id parameter
of any particular InvocationEvent instance is not
in the range from INVOCATION_FIRST to INVOCATION_LAST.
- Since:
- 1.2
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanSet to true if dispatch() catches Throwable and stores it in the exception instance variable.static final intThe default id for all InvocationEvents.static final intMarks the first integer id for the range of invocation event ids.static final intMarks the last integer id for the range of invocation event ids.protected ObjectThe (potentially null) Object whose notifyAll() method will be called immediately after the Runnable.run() method has returned or thrown an exception or after the event was disposed.protected RunnableThe Runnable whose run() method will be called.Fields declared in class AWTEvent
ACTION_EVENT_MASK, ADJUSTMENT_EVENT_MASK, COMPONENT_EVENT_MASK, consumed, CONTAINER_EVENT_MASK, FOCUS_EVENT_MASK, HIERARCHY_BOUNDS_EVENT_MASK, HIERARCHY_EVENT_MASK, id, INPUT_METHOD_EVENT_MASK, INVOCATION_EVENT_MASK, ITEM_EVENT_MASK, KEY_EVENT_MASK, MOUSE_EVENT_MASK, MOUSE_MOTION_EVENT_MASK, MOUSE_WHEEL_EVENT_MASK, PAINT_EVENT_MASK, RESERVED_ID_MAX, TEXT_EVENT_MASK, WINDOW_EVENT_MASK, WINDOW_FOCUS_EVENT_MASK, WINDOW_STATE_EVENT_MASKModifier and TypeFieldDescriptionstatic final longThe event mask for selecting action events.static final longThe event mask for selecting adjustment events.static final longThe event mask for selecting component events.protected booleanControls whether or not the event is sent back down to the peer once the source has processed it - false means it's sent to the peer; true means it's not.static final longThe event mask for selecting container events.static final longThe event mask for selecting focus events.static final longThe event mask for selecting hierarchy bounds events.static final longThe event mask for selecting hierarchy events.protected intThe event's id.static final longThe event mask for selecting input method events.static final longThe event mask for selecting invocation events.static final longThe event mask for selecting item events.static final longThe event mask for selecting key events.static final longThe event mask for selecting mouse events.static final longThe event mask for selecting mouse motion events.static final longThe event mask for selecting mouse wheel events.static final longThe event mask for selecting paint events.static final intThe maximum value for reserved AWT event IDs.static final longThe event mask for selecting text events.static final longThe event mask for selecting window events.static final longThe event mask for selecting window focus events.static final longThe event mask for selecting window state events.Fields declared in class EventObject
source -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedInvocationEvent(Object source, int id, Runnable runnable, Object notifier, boolean catchThrowables) Constructs anInvocationEventwith the specified source and ID which will execute the runnable'srun()method when dispatched.InvocationEvent(Object source, Runnable runnable) Constructs anInvocationEventwith the specified source which will execute the runnable'srun()method when dispatched.InvocationEvent(Object source, Runnable runnable, Object notifier, boolean catchThrowables) Constructs anInvocationEventwith the specified source which will execute the runnable'srun()method when dispatched.InvocationEvent(Object source, Runnable runnable, Runnable listener, boolean catchThrowables) Constructs anInvocationEventwith the specified source which will execute the runnable'srun()method when dispatched. -
Method Summary
Modifier and TypeMethodDescriptionvoiddispatch()Executes the Runnable'srun()method and notifies the notifier (if any) whenrun()has returned or thrown an exception.Returns any Exception caught while executing the Runnable'srun()method.Returns any Throwable caught while executing the Runnable'srun()method.longgetWhen()Returns the timestamp of when this event occurred.booleanReturnstrueif the event is dispatched or any exception is thrown while dispatching,falseotherwise.Returns a parameter string identifying this event.Methods declared in class AWTEvent
consume, getID, isConsumed, setSource, toStringModifier and TypeMethodDescriptionprotected voidconsume()Consumes this event, if this event can be consumed.intgetID()Returns the event type.protected booleanReturns whether this event has been consumed.voidRetargets an event to a new source.toString()Returns a String representation of this object.Methods declared in class EventObject
getSourceMethods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Creates and returns a copy of this object.booleanIndicates whether some other object is "equal to" this one.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class<?> getClass()Returns the runtime class of thisObject.inthashCode()Returns a hash code value for this object.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.final voidwait()Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final voidwait(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final voidwait(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
Field Details
-
INVOCATION_FIRST
public static final int INVOCATION_FIRSTMarks the first integer id for the range of invocation event ids.- See Also:
-
INVOCATION_DEFAULT
public static final int INVOCATION_DEFAULTThe default id for all InvocationEvents.- See Also:
-
INVOCATION_LAST
public static final int INVOCATION_LASTMarks the last integer id for the range of invocation event ids.- See Also:
-
runnable
The Runnable whose run() method will be called. -
notifier
The (potentially null) Object whose notifyAll() method will be called immediately after the Runnable.run() method has returned or thrown an exception or after the event was disposed.- See Also:
-
catchExceptions
protected boolean catchExceptionsSet to true if dispatch() catches Throwable and stores it in the exception instance variable. If false, Throwables are propagated up to the EventDispatchThread's dispatch loop.
-
-
Constructor Details
-
InvocationEvent
Constructs anInvocationEventwith the specified source which will execute the runnable'srun()method when dispatched.This is a convenience constructor. An invocation of the form
InvocationEvent(source, runnable)behaves in exactly the same way as the invocation ofInvocationEvent(source, runnable, null, false).This method throws an
IllegalArgumentExceptionifsourceisnull.- Parameters:
source- TheObjectthat originated the eventrunnable- TheRunnablewhoserun()method will be executed- Throws:
IllegalArgumentException- ifsourceis null- See Also:
-
InvocationEvent
Constructs anInvocationEventwith the specified source which will execute the runnable'srun()method when dispatched. If notifier is non-null,notifyAll()will be called on it immediately afterrun()has returned or thrown an exception.An invocation of the form
InvocationEvent(source, runnable, notifier, catchThrowables)behaves in exactly the same way as the invocation ofInvocationEvent(source, InvocationEvent.INVOCATION_DEFAULT, runnable, notifier, catchThrowables).This method throws an
IllegalArgumentExceptionifsourceisnull.- Parameters:
source- TheObjectthat originated the eventrunnable- TheRunnablewhoserun()method will be executednotifier- TheObjectwhosenotifyAllmethod will be called afterRunnable.runhas returned or thrown an exception or after the event was disposedcatchThrowables- Specifies whetherdispatchshould catch Throwable when executing theRunnable'srun()method, or should instead propagate those Throwables to the EventDispatchThread's dispatch loop- Throws:
IllegalArgumentException- ifsourceis null- See Also:
-
InvocationEvent
public InvocationEvent(Object source, Runnable runnable, Runnable listener, boolean catchThrowables) Constructs anInvocationEventwith the specified source which will execute the runnable'srun()method when dispatched. If listener is non-null,listener.run()will be called immediately afterrunhas returned, thrown an exception or the event was disposed.This method throws an
IllegalArgumentExceptionifsourceisnull.- Parameters:
source- TheObjectthat originated the eventrunnable- TheRunnablewhoserun()method will be executedlistener- TheRunnablewhoserun()method will be called after theInvocationEventwas dispatched or disposedcatchThrowables- Specifies whetherdispatchshould catch Throwable when executing theRunnable'srun()method, or should instead propagate those Throwables to the EventDispatchThread's dispatch loop- Throws:
IllegalArgumentException- ifsourceis null
-
InvocationEvent
protected InvocationEvent(Object source, int id, Runnable runnable, Object notifier, boolean catchThrowables) Constructs anInvocationEventwith the specified source and ID which will execute the runnable'srun()method when dispatched. If notifier is non-null,notifyAll()will be called on it immediately afterrun()has returned or thrown an exception.This method throws an
IllegalArgumentExceptionifsourceisnull.- Parameters:
source- TheObjectthat originated the eventid- An integer indicating the type of event. For information on allowable values, see the class description forInvocationEventrunnable- TheRunnablewhoserun()method will be executednotifier- TheObjectwhosenotifyAllmethod will be called afterRunnable.runhas returned or thrown an exception or after the event was disposedcatchThrowables- Specifies whetherdispatchshould catch Throwable when executing theRunnable'srun()method, or should instead propagate those Throwables to the EventDispatchThread's dispatch loop- Throws:
IllegalArgumentException- ifsourceis null- See Also:
-
-
Method Details
-
dispatch
public void dispatch()Executes the Runnable'srun()method and notifies the notifier (if any) whenrun()has returned or thrown an exception.- Specified by:
dispatchin interfaceActiveEvent- See Also:
-
getException
Returns any Exception caught while executing the Runnable'srun()method.- Returns:
- A reference to the Exception if one was thrown; null if no Exception was thrown or if this InvocationEvent does not catch exceptions
-
getThrowable
Returns any Throwable caught while executing the Runnable'srun()method.- Returns:
- A reference to the Throwable if one was thrown; null if no Throwable was thrown or if this InvocationEvent does not catch Throwables
- Since:
- 1.5
-
getWhen
public long getWhen()Returns the timestamp of when this event occurred.- Returns:
- this event's timestamp
- Since:
- 1.4
-
isDispatched
public boolean isDispatched()Returnstrueif the event is dispatched or any exception is thrown while dispatching,falseotherwise. The method should be called by a waiting thread that calls thenotifier.wait()method. Since spurious wakeups are possible (as explained inObject.wait()), this method should be used in a waiting loop to ensure that the event got dispatched:while (!event.isDispatched()) { notifier.wait(); }If the waiting thread wakes up without dispatching the event, theisDispatched()method returnsfalse, and thewhileloop executes once more, thus, causing the awakened thread to revert to the waiting mode.If the
notifier.notifyAll()happens before the waiting thread enters thenotifier.wait()method, thewhileloop ensures that the waiting thread will not enter thenotifier.wait()method. Otherwise, there is no guarantee that the waiting thread will ever be woken from the wait.- Returns:
trueif the event has been dispatched, or any exception has been thrown while dispatching,falseotherwise- Since:
- 1.7
- See Also:
-
paramString
Returns a parameter string identifying this event. This method is useful for event-logging and for debugging.- Overrides:
paramStringin classAWTEvent- Returns:
- A string identifying the event and its attributes
-