クラスEventQueue

java.lang.Object
java.awt.EventQueue

public class EventQueue extends Object
EventQueueは、ベースとなるピア・クラスと信頼できるアプリケーション・クラスの両方からのイベントをキューに入れる、プラットフォームに依存しないクラスです。

キューからイベントを抽出する非同期イベント・ディスパッチ機構をカプセル化し、ディスパッチされるイベントを引数としてEventQueuedispatchEvent(AWTEvent)メソッドを呼び出すことによりディスパッチします。 実際の動作は実装によって異なります。 唯一の要件は、このキュー(EventQueueに送られたイベントは合体できる)に実際に入れられたイベントをディスパッチすることです。

順次
これが指定されている場合、このキューの複数イベントの同時ディスパッチは許可されません。
キューに入れられた順序
AWTEvent AがAWTEvent Bよりも前にEventQueueに入れられた場合、イベントBをイベントAよりも前にディスパッチすることはできません。

イベント・ディスパッチ機能のスレッド問題については「AWTのスレッドの問題」を参照してください。

導入されたバージョン:
1.1
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    EventQueueの新しいインスタンスを初期化します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このイベント・キューに関連付けられた新しいsecondary loopを作成します。
    protected void
    イベントをディスパッチします。
    static AWTEvent
    コール元のスレッドに関連付けられたEventQueueによって現在ディスパッチされているイベントを返します。
    static long
    タイムスタンプを含み、呼出し元スレッドに関連付けられたEventQueueからディスパッチされた最新のイベントのタイムスタンプを返します。
    EventQueueからイベントを削除し、そのイベントを返します。
    static void
    runnablerunメソッドがthe system EventQueuedispatch threadで呼び出されるようにします。
    static void
    runnablerunメソッドがthe system EventQueuedispatch threadで呼び出されるようにします。
    static boolean
    呼出し元スレッドがthe current AWT EventQueueのディスパッチ・スレッドである場合はtrueを返します。
    EventQueue上の最初のイベントを削除せずに返します。
    peekEvent(int id)
    指定されたIDを持つイベントがある場合、その中の最初のイベントを返します。
    protected void
    pop()
    このEventQueueを使用するイベントのディスパッチを停止します。
    void
    postEvent(AWTEvent theEvent)
    1.1形式のイベントをEventQueueに送信します。
    void
    push(EventQueue newEventQueue)
    既存のEventQueueを指定されたものに置き換えます。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • EventQueue

      public EventQueue()
      EventQueueの新しいインスタンスを初期化します。
  • メソッドの詳細

    • postEvent

      public void postEvent(AWTEvent theEvent)
      1.1形式のイベントをEventQueueに送信します。 同じIDおよびイベント・ソースを持つイベントがキューにある場合は、ソースComponentcoalesceEventsメソッドが呼び出されます。
      パラメータ:
      theEvent - java.awt.AWTEventのインスタンス、またはそのサブクラス
      スロー:
      NullPointerException - theEventnullの場合
    • getNextEvent

      public AWTEvent getNextEvent() throws InterruptedException
      EventQueueからイベントを削除し、そのイベントを返します。 このメソッドは、別のスレッドによってイベントが送信されるまでブロックされます。
      戻り値:
      次のAWTEvent
      スロー:
      InterruptedException - いずれかのスレッドがこのスレッドに割り込んだ場合
    • peekEvent

      public AWTEvent peekEvent()
      EventQueue上の最初のイベントを削除せずに返します。
      戻り値:
      最初のイベント
    • peekEvent

      public AWTEvent peekEvent(int id)
      指定されたIDを持つイベントがある場合、その中の最初のイベントを返します。
      パラメータ:
      id - 要求するイベント型のID
      戻り値:
      指定されたIDを持つ最初のイベント。このIDを持つイベントが存在しない場合はnull
    • dispatchEvent

      protected void dispatchEvent(AWTEvent event)
      イベントをディスパッチします。 ディスパッチ方法は、イベントの型およびイベントのソース・オブジェクトの型によって異なります。
      イベント型、ソース型、ディスパッチ方法
      イベント・タイプ ソース・タイプ ディスパッチ方法
      ActiveEvent 任意 event.dispatch()
      その他 コンポーネント source.dispatchEvent(AWTEvent)
      その他 MenuComponent source.dispatchEvent(AWTEvent)
      その他 その他 処理されない(無視される)
      パラメータ:
      event - java.awt.AWTEventのインスタンス、またはそのサブクラス
      スロー:
      NullPointerException - eventnullの場合
      導入されたバージョン:
      1.2
    • getMostRecentEventTime

      public static long getMostRecentEventTime()
      タイムスタンプを含み、呼出し元スレッドに関連付けられたEventQueueからディスパッチされた最新のイベントのタイムスタンプを返します。 タイムスタンプを持つイベントがディスパッチ中の場合、そのタイムスタンプが返されます。 イベントがまったくディスパッチされていない場合、EventQueueが初期化された時間が返されます。JDKの現在のバージョンでは、InputEventActionEvent、およびInvocationEventだけがタイムスタンプを持ちますが、将来のバージョンではほかのイベント型にもタイムスタンプが追加される可能性があります。 このメソッドはアプリケーションのイベント・ディスパッチ・スレッドからのみ呼び出すようにしてください。 ほかのスレッドから呼び出した場合、System.currentTimeMillis()でレポートされる現在のシステム時刻が返されます。
      戻り値:
      ディスパッチされる、最後のInputEventActionEvent、またはInvocationEventのタイムスタンプ。このメソッドがイベント・ディスパッチ・スレッド以外のスレッドから呼び出される場合はSystem.currentTimeMillis()
      導入されたバージョン:
      1.4
      関連項目:
    • getCurrentEvent

      public static AWTEvent getCurrentEvent()
      コール元のスレッドに関連付けられたEventQueueによって現在ディスパッチされているイベントを返します。 メソッドがイベントにアクセスする必要があり、イベントへの参照を引数として受け取るよう設計されていない場合に有効です。 このメソッドはアプリケーションのイベント・ディスパッチ・スレッドからだけ呼び出すようにしてください。 ほかのスレッドから呼び出した場合、nullが返されます。
      戻り値:
      現在ディスパッチされているイベント。このメソッドがイベント・ディスパッチ・スレッド以外のスレッドから呼び出されている場合はnull
      導入されたバージョン:
      1.4
    • push

      public void push(EventQueue newEventQueue)
      既存のEventQueueを指定されたものに置き換えます。 待ち状態のイベントは、処理のために新しいEventQueueに転送されます。
      パラメータ:
      newEventQueue - 使用されるEventQueueまたはそのサブクラスのインスタンス
      スロー:
      NullPointerException - newEventQueuenullの場合
      導入されたバージョン:
      1.2
      関連項目:
    • pop

      protected void pop() throws EmptyStackException
      このEventQueueを使用するイベントのディスパッチを停止します。 待ち状態のイベントは、処理のために前のEventQueueに転送されます。

      警告: デッドロック回避のため、このメソッドをサブクラスで同期宣言しないようにします。

      スロー:
      EmptyStackException - このEventQueueで以前にプッシュが行われていない場合
      導入されたバージョン:
      1.2
      関連項目:
    • createSecondaryLoop

      public SecondaryLoop createSecondaryLoop()
      このイベント・キューに関連付けられた新しいsecondary loopを作成します。 イベント・ループの開始と停止を行い、このキューからイベントをディスパッチするには、SecondaryLoop.enter()メソッドとSecondaryLoop.exit()メソッドを使用します。
      戻り値:
      新しいセカンダリ・ループ・オブジェクトsecondaryLoop。ネストされた新しいイベント・ループを起動し、このキューからイベントをディスパッチするために使用できる
      導入されたバージョン:
      1.7
      関連項目:
    • isDispatchThread

      public static boolean isDispatchThread()
      呼出し元スレッドがthe current AWT EventQueueのディスパッチ・スレッドである場合はtrueを返します。 特定のタスクが実行されている(または実行されていない)ことを確認するには、このメソッドを使用します。

      ノート: the current AWT EventQueueのディスパッチ・スレッドでタスクを実行するには、invokeLater(Runnable)メソッドまたはinvokeAndWait(Runnable)メソッドを使用します。

      戻り値:
      the current AWT EventQueueのディスパッチ・スレッドで実行されている場合はtrue
      導入されたバージョン:
      1.2
      関連項目:
    • invokeLater

      public static void invokeLater(Runnable runnable)
      runnablerunメソッドがthe system EventQueuedispatch threadで呼び出されるようにします。 待ち状態のすべてのイベントが処理されたあとで実行されます。
      パラメータ:
      runnable - runメソッドがthe system EventQueueevent dispatch threadで非同期に実行されなければならないRunnable
      導入されたバージョン:
      1.2
      関連項目:
    • invokeAndWait

      public static void invokeAndWait(Runnable runnable) throws InterruptedException, InvocationTargetException
      runnablerunメソッドがthe system EventQueuedispatch threadで呼び出されるようにします。 待ち状態のすべてのイベントが処理されたあとで実行されます。 呼出しはこれが実行されるまでブロックされます。 このメソッドは、event dispatcher threadから呼び出されるとErrorをスローします。
      パラメータ:
      runnable - runメソッドがthe system EventQueueevent dispatch threadで同期で実行されなければならないRunnable
      スロー:
      InterruptedException - いずれかのスレッドがこのスレッドに割り込んだ場合
      InvocationTargetException - runnableの動作中にThrowableがスローされる場合
      導入されたバージョン:
      1.2
      関連項目: