モジュール java.desktop
パッケージ java.awt.event

クラスInvocationEvent

  • すべての実装されたインタフェース:
    ActiveEvent, Serializable

    public class InvocationEvent
    extends AWTEvent
    implements ActiveEvent
    AWTイベント・ディスパッチャ・スレッドによってディスパッチされたときに、Runnable 上でrun()メソッドを実行するイベントです。 このクラスは、新しいクラスを宣言してdispatch()を定義する代わりに、ActiveEventの参照実装として使用できます。

    このクラスのインスタンスは、invokeLaterおよびinvokeAndWaitの呼出しによってEventQueueに置かれます。 これによりクライアントのコードでは、特別な場合のコードを書くことなくAWTEventListenerオブジェクト内に、invokeLater およびinvokeAndWaitに代わる関数を記述できます。

    特定のInvocationEventインスタンスのidパラメータがINVOCATION_FIRSTからINVOCATION_LASTまでの範囲にない場合に、未指定の動作が発生します。

    導入されたバージョン:
    1.2
    関連項目:
    ActiveEvent, EventQueue.invokeLater(java.lang.Runnable), EventQueue.invokeAndWait(java.lang.Runnable), AWTEventListener, 直列化された形式
    • フィールドの詳細

      • INVOCATION_FIRST

        public static final int INVOCATION_FIRST
        呼出しイベントIDの範囲の最初の整数IDをマスクします。
        関連項目:
        定数フィールド値
      • INVOCATION_DEFAULT

        public static final int INVOCATION_DEFAULT
        すべてのInvocationEventに対するデフォルトIDです。
        関連項目:
        定数フィールド値
      • INVOCATION_LAST

        public static final int INVOCATION_LAST
        呼出しイベントIDの範囲の最後の整数IDをマスクします。
        関連項目:
        定数フィールド値
      • runnable

        protected Runnable runnable
        run()メソッドが呼び出されるRunnableです。
      • notifier

        protected volatile Object notifier
        Runnable.run()メソッドの復帰後または例外のスロー後、あるいはイベントの破棄後、notifyAll()メソッドがただちに呼び出されるObjectです(nullの場合もあります)。
        関連項目:
        isDispatched()
      • catchExceptions

        protected boolean catchExceptions
        dispatch()がThrowableをキャッチして例外インスタンス変数に格納する場合は、trueに設定します。 falseの場合は、ThrowableはEventDispatchThreadのディスパッチ・ループまで伝達されます。
    • コンストラクタの詳細

      • InvocationEvent

        public InvocationEvent​(Object source,
                               Runnable runnable)
        指定されたソース(ディスパッチされたときにrunnableのrunメソッドを実行します)でInvocationEventを構築します。

        これは簡易コンストラクタです。 InvocationEvent(source, runnable)という形式の呼び出しは、InvocationEvent(source, runnable, null, false)の呼び出しとまったく同じように動作します。

        このメソッドはsourcenullの場合にIllegalArgumentExceptionをスローします。

        パラメータ:
        source - イベントを発生させたObject
        runnable - runメソッドが実行されるRunnable
        例外:
        IllegalArgumentException - sourceがnullである場合
        関連項目:
        EventObject.getSource(), InvocationEvent(Object, Runnable, Object, boolean)
      • InvocationEvent

        public InvocationEvent​(Object source,
                               Runnable runnable,
                               Object notifier,
                               boolean catchThrowables)
        指定されたソース(ディスパッチされたときにrunnableのrunメソッドを実行します)でInvocationEventを構築します。 notifierがnullでない場合は、runが戻ったあとまたは例外のスロー後、ただちにそこでnotifyAll()が呼び出されます。

        InvocationEvent(source, runnable, notifier, catchThrowables)という形式の呼び出しは、InvocationEvent(source, InvocationEvent.INVOCATION_DEFAULT, runnable, notifier, catchThrowables)の呼び出しとまったく同じように動作します。

        このメソッドはsourcenullの場合にIllegalArgumentExceptionをスローします。

        パラメータ:
        source - イベントを発生させたObject
        runnable - runメソッドが実行されるRunnable
        notifier - Runnable.runの復帰後または例外のスロー後、あるいはイベントの破棄後にnotifyAllメソッドが呼び出されるObject
        catchThrowables - Runnablerunメソッドの実行時に、dispatchによりThrowableがキャッチされるか、これらのThrowableがEventDispatchThreadのディスパッチ・ループまで伝達されるかを指定する
        例外:
        IllegalArgumentException - sourceがnullである場合
        関連項目:
        EventObject.getSource(), InvocationEvent(Object, int, Runnable, Object, boolean)
      • InvocationEvent

        public InvocationEvent​(Object source,
                               Runnable runnable,
                               Runnable listener,
                               boolean catchThrowables)
        指定されたソース(ディスパッチされたときにrunnableのrunメソッドを実行します)でInvocationEventを構築します。 listenerがnullでない場合は、runの復帰後または例外のスロー後、あるいはイベントの破棄後、ただちにそこでlistener.run()が呼び出されます。

        このメソッドはsourcenullの場合にIllegalArgumentExceptionをスローします。

        パラメータ:
        source - イベントを発生させたObject
        runnable - runメソッドが実行されるRunnable
        listener - InvocationEventのディスパッチ後または破棄後にrun()メソッドが呼び出されるRunnable
        catchThrowables - Runnablerunメソッドの実行時に、dispatchによりThrowableがキャッチされるか、これらのThrowableがEventDispatchThreadのディスパッチ・ループまで伝達されるかを指定する
        例外:
        IllegalArgumentException - sourceがnullである場合
      • InvocationEvent

        protected InvocationEvent​(Object source,
                                  int id,
                                  Runnable runnable,
                                  Object notifier,
                                  boolean catchThrowables)
        指定されたソースとID (ディスパッチされたときにrunnableのrunメソッドを実行します)でInvocationEventを構築します。 notifierがnullでない場合は、runが戻ったあとまたは例外のスロー後、ただちにそこでnotifyAllが呼び出されます。

        このメソッドはsourcenullの場合にIllegalArgumentExceptionをスローします。

        パラメータ:
        source - イベントを発生させたObject
        id - イベントのタイプを示す整数。 許容される値については、InvocationEventのクラスの説明を参照してください。
        runnable - runメソッドが実行されるRunnable
        notifier - Runnable.runの復帰後または例外のスロー後、あるいはイベントの破棄後にnotifyAllメソッドが呼び出されるObject
        catchThrowables - Runnablerunメソッドの実行時に、dispatchによりThrowableがキャッチされるか、これらのThrowableがEventDispatchThreadのディスパッチ・ループまで伝達されるかを指定する
        例外:
        IllegalArgumentException - sourceがnullである場合
        関連項目:
        EventObject.getSource(), AWTEvent.getID()
    • メソッドの詳細

      • dispatch

        public void dispatch()
        Runnableのrun()メソッドを実行し、run()が戻るか例外をスローしたときにnotifier (ある場合)を通知します。
        定義:
        dispatch、インタフェースActiveEvent
        関連項目:
        isDispatched()
      • getException

        public Exception getException()
        Runnableのrun()メソッド実行時にキャッチされたExceptionを返します。
        戻り値:
        Exceptionがスローされた場合はそのExceptionに対する参照。Exceptionがスローされなかった場合、またはこのInvocationEventが例外をキャッチしなかった場合はnull
      • getThrowable

        public Throwable getThrowable()
        Runnableの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.wait()メソッドに入る前にnotifier.notifyAll()が発生すると、whileループによって待機中スレッドがnotifier.wait()メソッドに確実に入らなくなります。 それ以外の場合、待機中スレッドは待機状態から復帰しません。

        戻り値:
        イベントがディスパッチされるか、ディスパッチ中に例外がスローされた場合は、true、それ以外の場合はfalse
        導入されたバージョン:
        1.7
        関連項目:
        dispatch(), notifier, catchExceptions
      • paramString

        public String paramString()
        このイベントを特定するパラメータ文字列を返します。 このメソッドは、イベント・ログの作成およびデバッグに便利です。
        オーバーライド:
        paramString、クラスAWTEvent
        戻り値:
        イベントを特定する文字列とその属性