モジュール 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
関連項目:
  • フィールド詳細

    • 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の場合もあります)。
      関連項目:
    • 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である場合
      関連項目:
    • 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である場合
      関連項目:
    • 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である場合
      関連項目:
  • メソッドの詳細

    • dispatch

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

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