- 所有实现的接口:
-
ActiveEvent,Serializable
Runnable上执行run()方法。此类可用作ActiveEvent的参考实现,而无需声明新类并定义dispatch()。
通过调用invokeLater和invokeAndWait,将此类的实例放置在EventQueue上。客户端代码可以利用这一事实编写替代函数,用于invokeLater和invokeAndWait,而无需在任何AWTEventListener对象中编写特殊代码。
如果任何特定InvocationEvent实例的id参数不在INVOCATION_FIRST到INVOCATION_LAST范围内,则会导致未指定的行为。
- 自:
- 1.2
- 参见:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean如果dispatch()捕获Throwable并将其存储在异常实例变量中,则设置为true。static final int所有InvocationEvents的默认id。static final int标记调用事件id范围的第一个整数id。static final int标记调用事件id范围的最后一个整数id。protected Object(可能为null的)Object,其notifyAll()方法将在Runnable.run()方法返回或抛出异常后立即调用,或在事件被处理后调用。protected Runnable将调用Runnable的run()方法。Fields declared in class java.awt.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_MASKFields declared in class java.util.EventObject
source -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedInvocationEvent(Object source, int id, Runnable runnable, Object notifier, boolean catchThrowables) 使用指定的源和ID构造一个InvocationEvent,当调度时将执行runnable的run()方法。InvocationEvent(Object source, Runnable runnable) 使用指定的源构造一个InvocationEvent,当调度时将执行runnable的run()方法。InvocationEvent(Object source, Runnable runnable, Object notifier, boolean catchThrowables) 使用指定的源构造一个InvocationEvent,当调度时将执行runnable的run()方法。InvocationEvent(Object source, Runnable runnable, Runnable listener, boolean catchThrowables) 使用指定的源构造一个InvocationEvent,当调度时将执行runnable的run()方法。 -
Method Summary
Methods declared in class java.util.EventObject
getSource
-
Field Details
-
INVOCATION_FIRST
public static final int INVOCATION_FIRST标记调用事件id范围的第一个整数id。- 参见:
-
INVOCATION_DEFAULT
public static final int INVOCATION_DEFAULT所有InvocationEvents的默认id。- 参见:
-
INVOCATION_LAST
public static final int INVOCATION_LAST标记调用事件id范围的最后一个整数id。- 参见:
-
runnable
将调用Runnable的run()方法。 -
notifier
(可能为null的)Object,其notifyAll()方法将在Runnable.run()方法返回或抛出异常后立即调用,或在事件被处理后调用。- 参见:
-
catchExceptions
protected boolean catchExceptions如果dispatch()捕获Throwable并将其存储在异常实例变量中,则设置为true。如果为false,则Throwables将传播到EventDispatchThread的调度循环。
-
-
Constructor Details
-
InvocationEvent
使用指定的源构造一个InvocationEvent,当调度时将执行runnable的run()方法。这是一个便利构造函数。形式为
InvocationEvent(source, runnable)的调用与调用InvocationEvent(source, runnable, null, false)的调用行为完全相同。如果
source为null,此方法将抛出IllegalArgumentException。- 参数:
-
source- 产生事件的Object -
runnable- 将执行其run()方法的Runnable - 抛出:
-
IllegalArgumentException- 如果source为null - 参见:
-
InvocationEvent
使用指定的源构造一个InvocationEvent,当调度时将执行runnable的run()方法。如果notifier为非null,则在run()返回或抛出异常后将立即在其上调用notifyAll()。形式为
InvocationEvent(source, runnable, notifier, catchThrowables)的调用与调用InvocationEvent(source, InvocationEvent.INVOCATION_DEFAULT, runnable, notifier, catchThrowables)的调用行为完全相同。如果
source为null,此方法将抛出IllegalArgumentException。- 参数:
-
source- 产生事件的Object -
runnable- 将执行其run()方法的Runnable -
notifier- 在run()返回或抛出异常后或事件被处理后立即调用其notifyAll方法的Object -
catchThrowables- 指定dispatch在执行Runnable的run()方法时是否应捕获Throwable,或者应将这些Throwables传播到EventDispatchThread的调度循环 - 抛出:
-
IllegalArgumentException- 如果source为null - 参见:
-
InvocationEvent
public InvocationEvent(Object source, Runnable runnable, Runnable listener, boolean catchThrowables) 使用指定的源构造一个InvocationEvent,当调度时将执行runnable的run()方法。如果listener为非null,则在run返回、抛出异常或事件被处理后将立即调用listener.run()。如果
source为null,此方法将抛出IllegalArgumentException。- 参数:
-
source- 产生事件的Object -
runnable- 将执行其run()方法的Runnable -
listener- 在InvocationEvent被调度或处理后将调用其run()方法的Runnable -
catchThrowables- 指定dispatch在执行Runnable的run()方法时是否应捕获Throwable,或者应将这些Throwables传播到EventDispatchThread的调度循环 - 抛出:
-
IllegalArgumentException- 如果source为null
-
InvocationEvent
protected InvocationEvent(Object source, int id, Runnable runnable, Object notifier, boolean catchThrowables) 使用指定的源和ID构造一个InvocationEvent,当调度时将执行runnable的run()方法。如果notifier为非null,则在run()返回或抛出异常后将立即在其上调用notifyAll()。如果
source为null,此方法将抛出IllegalArgumentException。- 参数:
-
source- 产生事件的Object -
id- 指示事件类型的整数。有关允许的值的信息,请参阅InvocationEvent的类描述 -
runnable- 将要执行的Runnable的run()方法 -
notifier- 在Runnable.run返回或抛出异常后或事件被处理后调用其notifyAll方法的Object -
catchThrowables- 指定在执行Runnable的run()方法时,dispatch是否应捕获Throwable,或者应将这些Throwable传播到EventDispatchThread的dispatch循环中 - 抛出:
-
IllegalArgumentException- 如果source为null - 参见:
-
-
Method Details
-
dispatch
public void dispatch()执行run()方法并在run()返回或抛出异常时通知通知器(如果有)。- 指定者:
-
dispatch在接口ActiveEvent - 参见:
-
getException
返回在执行run()方法时捕获的任何异常。- 返回:
- 如果抛出异常,则返回对异常的引用;如果未抛出异常或此InvocationEvent不捕获异常,则返回null
-
getThrowable
返回在执行run()方法时捕获的任何Throwable。- 返回:
- 如果抛出Throwable,则返回对Throwable的引用;如果未抛出Throwable或此InvocationEvent不捕获Throwable,则返回null
- 自:
- 1.5
-
getWhen
public long getWhen()返回此事件发生的时间戳。- 返回:
- 此事件的时间戳
- 自:
- 1.4
-
isDispatched
public boolean isDispatched()如果事件被分派或在分派时抛出任何异常,则返回true;否则返回false。该方法应由调用notifier.wait()方法的等待线程调用。由于虚假唤醒是可能的(如Object.wait()中所解释的),因此应在等待循环中使用此方法以确保事件已被分派:while (!event.isDispatched()) { notifier.wait(); }如果等待线程在不分派事件的情况下被唤醒,则isDispatched()方法返回false,while循环再次执行,从而导致唤醒的线程恢复到等待模式。如果
notifier.notifyAll()在等待线程进入notifier.wait()方法之前发生,则while循环确保等待线程不会进入notifier.wait()方法。否则,不能保证等待线程将从等待中被唤醒。- 返回:
-
如果事件已被分派,或在分派时抛出任何异常,则返回
true;否则返回false - 自:
- 1.7
- 参见:
-
paramString
返回标识此事件的参数字符串。此方法对事件记录和调试很有用。- 覆盖:
-
paramString在类AWTEvent - 返回:
- 标识事件及其属性的字符串
-