- 所有实现的接口:
-
ActiveEvent
,Serializable
Runnable
上执行run()
方法。此类可用作ActiveEvent
的参考实现,而无需声明新类并定义dispatch()
。
通过调用invokeLater
和invokeAndWait
,将此类的实例放置在EventQueue
上。客户端代码可以利用这一事实编写替代函数,用于invokeLater
和invokeAndWait
,而无需在任何AWTEventListener
对象中编写特殊代码。
如果任何特定InvocationEvent
实例的id
参数不在INVOCATION_FIRST
到INVOCATION_LAST
范围内,则会导致未指定的行为。
- 自:
- 1.2
- 参见:
-
Field Summary
Modifier 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_MASK
Fields declared in class java.util.EventObject
source
-
Constructor Summary
ModifierConstructorDescriptionprotected
InvocationEvent
(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
- 返回:
- 标识事件及其属性的字符串
-