- java.lang.Object
-
- java.util.EventObject
-
- java.awt.AWTEvent
-
- java.awt.event.InvocationEvent
-
- 实现的所有接口
-
ActiveEvent
,Serializable
public class InvocationEventextends AWTEventimplements ActiveEvent
它执行的事件run()
上的方法Runnable
当通过AWT事件调度线程进行调度。 此类可用作ActiveEvent
的参考实现,而不是声明新类并定义dispatch()
。通过调用
invokeLater
和invokeAndWait
将EventQueue
的实例放在invokeAndWait
。 客户端代码可以使用此事实为invokeLater
和invokeAndWait
编写替换函数,而无需在任何AWTEventListener
对象中编写特殊情况代码。如果任何特定
InvocationEvent
实例的id
参数不在INVOCATION_FIRST
到INVOCATION_LAST
范围内,INVOCATION_FIRST
导致未指定的行为。
-
-
字段汇总
字段 变量和类型 字段 描述 protected boolean
catchExceptions
如果dispatch()捕获Throwable并将其存储在异常实例变量中,则设置为true。static int
INVOCATION_DEFAULT
所有InvocationEvents的默认ID。static int
INVOCATION_FIRST
标记调用事件id范围的第一个整数id。static int
INVOCATION_LAST
标记调用事件id范围的最后一个整数id。protected Object
notifier
(可能为null)对象,其notifyAll()方法将在Runnable.run()方法返回或抛出异常之后立即调用,或者在事件处理完毕后立即调用。protected Runnable
runnable
将调用run()方法的Runnable。-
声明的属性在类 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
-
声明的属性在类 java.util.EventObject
source
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
InvocationEvent(Object source, int id, Runnable runnable, Object notifier, boolean catchThrowables)
构造一个InvocationEvent
具有指定源和ID将执行可运行的run
时调度方法。InvocationEvent(Object source, Runnable runnable)
构造一个InvocationEvent
与将执行可运行的指定的源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
方法。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
dispatch()
执行Runnable的run()
方法,并在run()
返回或抛出异常时通知通知程序(如果有)。异常
getException()
返回执行Runnable的run()
方法时捕获的任何异常。Throwable
getThrowable()
返回执行Runnable的run()
方法时捕获的任何Throwable。long
getWhen()
返回此事件发生的时间戳。boolean
isDispatched()
返回true
如果事件被分派或者在发送任何异常被抛出,false
否则。String
paramString()
返回标识此事件的参数字符串。-
声明方法的类 java.util.EventObject
getSource
-
-
-
-
字段详细信息
-
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
protected Runnable runnable
将调用run()方法的Runnable。
-
notifier
protected volatile Object notifier
(可能为null)对象,其notifyAll()方法将在Runnable.run()方法返回或抛出异常之后立即调用,或者在事件处理完毕后立即调用。- 另请参见:
-
isDispatched()
-
catchExceptions
protected boolean catchExceptions
如果dispatch()捕获Throwable并将其存储在异常实例变量中,则设置为true。 如果为false,则Throwables会传播到EventDispatchThread的调度循环。
-
-
构造方法详细信息
-
InvocationEvent
public InvocationEvent(Object source, Runnable runnable)
使用指定的源构造一个InvocationEvent
,它将在调度时执行runnable的run
方法。这是一个方便的构造函数。 调用形式
InvocationEvent(source, runnable)
行为与调用InvocationEvent(source, runnable, null, false)
的方式完全相同 。此方法抛出
IllegalArgumentException
如果source
为null
。- 参数
-
source
- 起源Object
事件的Object
-
runnable
-该Runnable
,其run
方法将被执行 - 异常
-
IllegalArgumentException
- 如果source
为空 - 另请参见:
-
EventObject.getSource()
,InvocationEvent(Object, Runnable, Object, boolean)
-
InvocationEvent
public InvocationEvent(Object source, Runnable runnable, Object notifier, boolean catchThrowables)
使用指定的源构造一个InvocationEvent
,它将在调度时执行runnable的run
方法。 如果通知是非null
,notifyAll()
将在它被称为后立即run
返回或抛出异常。调用形式
InvocationEvent(source, runnable, notifier, catchThrowables)
行为与调用InvocationEvent(source, InvocationEvent.INVOCATION_DEFAULT, runnable, notifier, catchThrowables)
的方式完全相同 。此方法抛出
IllegalArgumentException
如果source
为null
。- 参数
-
source
- 发起此事件的Object
-
runnable
-该Runnable
,其run
方法将被执行 -
notifier
-Object
其notifyAll
方法将在Runnable.run
返回或抛出异常后或在事件处理后调用 -
catchThrowables
- 指定dispatch
在执行Runnable
的run
方法时是否应该捕获Throwable,或者应该将那些Throwables传播到EventDispatchThread的分派循环 - 异常
-
IllegalArgumentException
- 如果source
为空 - 另请参见:
-
EventObject.getSource()
,InvocationEvent(Object, int, Runnable, Object, boolean)
-
InvocationEvent
public InvocationEvent(Object source, Runnable runnable, Runnable listener, boolean catchThrowables)
使用指定的源构造一个InvocationEvent
,它将在调度时执行runnable的run
方法。 如果听者不null
,listener.run()
将被调用后立即run
又回来了,抛出一个异常,或者被设置在事件。此方法抛出
IllegalArgumentException
如果source
为null
。- 参数
-
source
- 发起此事件的Object
-
runnable
-该Runnable
,其run
方法将被执行 -
listener
-该Runnable
可运行其run()
方法之后将被称为InvocationEvent
被派遣或设置 -
catchThrowables
- 指定dispatch
在执行Runnable
的run
方法时是否应该捕获Throwable,或者应该将那些Throwables传播到EventDispatchThread的分派循环 - 异常
-
IllegalArgumentException
- 如果source
为空
-
InvocationEvent
protected InvocationEvent(Object source, int id, Runnable runnable, Object notifier, boolean catchThrowables)
构造一个InvocationEvent
具有指定源和ID将执行可运行的run
时调度方法。 如果通知是非null
,notifyAll
将在它被称为后立即run
返回或抛出异常。此方法抛出
IllegalArgumentException
如果source
为null
。- 参数
-
source
- 起源Object
事件的Object
-
id
- 指示事件类型的整数。 有关允许值的信息,请参阅InvocationEvent
的类说明 -
runnable
-该Runnable
,其run
方法将被执行 -
notifier
-Object
其notifyAll
方法将在Runnable.run
之后Runnable.run
,返回或抛出异常或事件处理后 -
catchThrowables
- 指定dispatch
在执行Runnable
的run
方法时是否应该捕获Throwable,或者应该将那些Throwables传播到EventDispatchThread的分派循环 - 异常
-
IllegalArgumentException
- 如果source
为空 - 另请参见:
-
EventObject.getSource()
,AWTEvent.getID()
-
-
方法详细信息
-
dispatch
public void dispatch()
执行Runnable的run()
方法,并在run()
返回或抛出异常时通知通知程序(如果有)。- Specified by:
-
dispatch
接口ActiveEvent
- 另请参见:
-
isDispatched()
-
getException
public 异常 getException()
返回执行Runnable的run()
方法时捕获的任何异常。- 结果
- 如果抛出异常,则引用异常; 如果没有抛出Exception或者此InvocationEvent没有捕获异常,则返回null
-
getThrowable
public Throwable getThrowable()
返回执行Runnable的run()
方法时捕获的任何Throwable。- 结果
- 如果扔掉的话,提到Throwable; 如果没有抛出Throwable或者此InvocationEvent没有捕获Throwables,则返回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
- 另请参见:
-
dispatch()
,notifier
,catchExceptions
-
paramString
public String paramString()
返回标识此事件的参数字符串。 此方法对于事件记录和调试很有用。- 重写:
-
paramString
在课程AWTEvent
- 结果
- 标识事件及其属性的字符串
-
-