JavaTM 2
Platform
Std. Ed. v1.4.0

java.awt
クラス EventQueue

java.lang.Object
  |
  +--java.awt.EventQueue

public class EventQueue
extends Object

EventQueue はどのプラットフォームでも共通のクラスであり、配下のピアクラスと信頼できるアプリケーションクラスからのイベントをキューに入れます。

この EventQueue に対して、ディスパッチ対象のイベントを引数として dispatchEvent(AWTEvent) メソッドを呼び出し、イベントをキューから抽出してディスパッチを行う、非同期イベントディスパッチ機能をカプセル化します。この機能の一部の動作は実装によって変わります。条件は実際にこのキューに入れられたイベントをディスパッチするということだけです。EventQueue に送信中のイベントはキューに入れられたものと同じように扱うことができます。

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

ブラウザによっては、コードベースが異なるアプレットを個別のコンテキストに分割し、これらのコンテキストを独立して扱うものがあります。この場合、各コンテキストごとに 1 つの EventQueue が存在することになります。すべてのアプレットを同じコンテキストに置き、1 つのグローバル EventQueue ですべてのアプレットを動作させるブラウザもあります。この動作は実装によって決定されます。詳細はブラウザのドキュメントを参照してください。

導入されたバージョン:
1.1

コンストラクタの概要
EventQueue()
           
 
メソッドの概要
protected  void dispatchEvent(AWTEvent event)
          イベントをディスパッチします。
static AWTEvent getCurrentEvent()
          呼び出されたスレッドに関連付けられた EventQueue に現在ディスパッチされているイベントを返します。
static long getMostRecentEventTime()
          呼び出されたスレッドに関連付けられた EventQueue からディスパッチされた、一番新しいタイムスタンプを持つイベントのタイムスタンプを返します。
 AWTEvent getNextEvent()
          EventQueue からイベントを削除し、そのイベントを返します。
static void invokeAndWait(Runnable runnable)
          runnablerun メソッドが EventQueue のディスパッチスレッドで呼び出されるようにします。
static void invokeLater(Runnable runnable)
          runnablerun メソッドが EventQueue のディスパッチスレッドで呼び出されるようにします。
static boolean isDispatchThread()
          呼び出し側スレッドが現在の AWT EventQueue のディスパッチスレッドの場合に true を返します。
 AWTEvent peekEvent()
          EventQueue の最初のイベントを削除せずに返します。
 AWTEvent peekEvent(int id)
          指定された ID を持つイベントがある場合、その中の最初のイベントを返します。
protected  void pop()
          この EventQueue を使用するイベントのディスパッチを停止します。
 void postEvent(AWTEvent theEvent)
          1.1 形式のイベントを EventQueue へ送信します。
 void push(EventQueue newEventQueue)
          既存の EventQueue を、指定された EventQueue で置き換えます。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

EventQueue

public EventQueue()
メソッドの詳細

postEvent

public void postEvent(AWTEvent theEvent)
1.1 形式のイベントを EventQueue へ送信します。同じ ID およびイベントソースを持つキューにイベントがある場合は、ソース ComponentcoalesceEvents メソッドが呼び出されます。

パラメータ:
theEvent - java.awt.AWTEvent のインスタンス、またはそのサブクラス

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 Any event.dispatch()
その他 Component source.dispatchEvent(AWTEvent)
その他 MenuComponent source.dispatchEvent(AWTEvent)
その他 その他 処理されない (無視される)


getMostRecentEventTime

public static long getMostRecentEventTime()
呼び出されたスレッドに関連付けられた EventQueue からディスパッチされた、一番新しいタイムスタンプを持つイベントのタイムスタンプを返します。タイムスタンプを持つイベントがディスパッチ中の場合、そのタイムスタンプが返されます。イベントが全くディスパッチされていない場合、EventQueue が初期化された時間が返されます。Java platform SDK の現在のバージョンでは、InputEventActionEvent、および InvocationEvent だけがタイムスタンプを持ちますが、将来のバージョンでは他のイベントタイプにもタイムスタンプが追加される可能性があります。このメソッドはアプリケーションのイベントディスパッチスレッドからだけ呼び出すようにしてください。他のスレッドから呼び出した場合、System.currentTimeMillis() でレポートされる現在のシステム時刻が返されます。

戻り値:
ディスパッチされる、最後の InputEventActionEvent、または InvocationEvent のタイムスタンプ。このメソッドがイベントディスパッチスレッド以外から呼び出される場合は System.currentTimeMillis()
導入されたバージョン:
1.4
関連項目:
InputEvent.getWhen(), ActionEvent.getWhen(), InvocationEvent.getWhen()

getCurrentEvent

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

戻り値:
現在ディスパッチされているイベント。このメソッドがイベントディスパッチスレッド以外のスレッドから呼び出されている場合は null
導入されたバージョン:
1.4

push

public void push(EventQueue newEventQueue)
既存の EventQueue を、指定された EventQueue で置き換えます。待ち状態のイベントは、処理のために新しい EventQueue に転送されます。

パラメータ:
newEventQueue - 使用される EventQueue またはそのサブクラスのインスタンス
関連項目:
pop()

pop

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

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

例外:
EmptyStackException - この EventQueue で以前にプッシュが行われていない場合
関連項目:
push(java.awt.EventQueue)

isDispatchThread

public static boolean isDispatchThread()
呼び出し側スレッドが現在の AWT EventQueue のディスパッチスレッドの場合に true を返します。このメソッドを使用すると、指定されたタスクを現在の AWT EventDispatchThread で確実に実行させる (または実行させないようにする) ことができます。

戻り値:
現在の AWT EventQueue のディスパッチスレッドで動作している場合は true

invokeLater

public static void invokeLater(Runnable runnable)
runnablerun メソッドが EventQueue のディスパッチスレッドで呼び出されるようにします。待ち状態のすべてのイベントが処理された後に呼び出されます。

パラメータ:
runnable - run メソッドが EventQueue で同期実行されなければならない Runnable
導入されたバージョン:
1.2
関連項目:
invokeAndWait(java.lang.Runnable)

invokeAndWait

public static void invokeAndWait(Runnable runnable)
                          throws InterruptedException,
                                 InvocationTargetException
runnablerun メソッドが EventQueue のディスパッチスレッドで呼び出されるようにします。待ち状態のすべてのイベントが処理されたあとで実行されます。呼び出しはこれが実行されるまでブロックされます。このメソッドは、イベントディスパッチャスレッドから呼び出されると Error をスローします。

パラメータ:
runnable - run メソッドが EventQueue で同期実行されなければならない Runnable
例外:
InterruptedException - 別のスレッドがこのスレッドに割り込んだ場合
InvocationTargetException - runnable の動作中に例外がスローされる場合
導入されたバージョン:
1.2
関連項目:
invokeLater(java.lang.Runnable)

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.