- java.lang.Object
-
- java.util.EventObject
-
- java.awt.AWTEvent
-
- java.awt.event.InvocationEvent
-
- 实现的所有接口
-
ActiveEvent,Serializable
public class InvocationEvent extends AWTEvent implements ActiveEvent
它执行的事件run()上的方法Runnable当通过AWT事件调度线程进行调度。 此类可用作ActiveEvent的参考实现,而不是声明新类并定义dispatch()。通过调用
invokeLater和invokeAndWait将EventQueue的实例放在invokeAndWait。 客户端代码可以使用此事实为invokeLater和invokeAndWait编写替换函数,而无需在任何AWTEventListener对象中编写特殊情况代码。如果任何特定
InvocationEvent实例的id参数不在INVOCATION_FIRST到INVOCATION_LAST范围内,INVOCATION_FIRST导致未指定的行为。
-
-
字段汇总
字段 变量和类型 字段 描述 protected booleancatchExceptions如果dispatch()捕获Throwable并将其存储在异常实例变量中,则设置为true。static intINVOCATION_DEFAULT所有InvocationEvents的默认ID。static intINVOCATION_FIRST标记调用事件id范围的第一个整数id。static intINVOCATION_LAST标记调用事件id范围的最后一个整数id。protected Objectnotifier(可能为null)对象,其notifyAll()方法将在Runnable.run()方法返回或抛出异常之后立即调用,或者在事件处理完毕后立即调用。protected Runnablerunnable将调用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
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedInvocationEvent(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方法。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 voiddispatch()执行Runnable的run()方法,并在run()返回或抛出异常时通知通知程序(如果有)。异常getException()返回执行Runnable的run()方法时捕获的任何异常。ThrowablegetThrowable()返回执行Runnable的run()方法时捕获的任何Throwable。longgetWhen()返回此事件发生的时间戳。booleanisDispatched()返回true如果事件被分派或者在发送任何异常被抛出,false否则。StringparamString()返回标识此事件的参数字符串。-
声明方法的类 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 - 结果
- 标识事件及其属性的字符串
-
-