java.lang.Object
java.awt.EventQueue
public class EventQueue extends Object
EventQueueは、ベースとなるピア・クラスと信頼できるアプリケーション・クラスの両方からのイベントをキューに入れる、プラットフォームに依存しないクラスです。
キューからイベントを抽出する非同期イベント・ディスパッチ機構をカプセル化し、ディスパッチされるイベントを引数としてEventQueueのdispatchEvent(AWTEvent)メソッドを呼び出すことによりディスパッチします。 実際の動作は実装によって異なります。 唯一の要件は、このキュー(EventQueueに送られたイベントは合体できる)に実際に入れられたイベントをディスパッチすることです。
- 順次
- これが指定されている場合、このキューの複数イベントの同時ディスパッチは許可されません。
- キューに入れられた順序
-
AWTEventAがAWTEventBよりも前にEventQueueに入れられた場合、イベントBをイベントAよりも前にディスパッチすることはできません。
一部のブラウザは、異なるコード・ベースのアプレットを別のコンテキストに分割し、これらのコンテキストの間に壁を構築します。 この場合、各コンテキストごとに1つのEventQueueが存在することになります。 すべてのアプレットを同じコンテキストに置き、1つのグローバルEventQueueですべてのアプレットを動作させるブラウザもあります。 この動作は実装に依存します。 詳細はブラウザのマニュアルを参照してください。
イベント・ディスパッチ機能のスレッド問題については「AWTのスレッドの問題」を参照してください。
- 導入されたバージョン:
- 1.1
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明このイベント・キューに関連付けられた新しいsecondary loopを作成します。protected voiddispatchEvent(AWTEvent event) イベントをディスパッチします。static AWTEventコール元のスレッドに関連付けられたEventQueueによって現在ディスパッチされているイベントを返します。static longタイムスタンプを含み、呼出し元スレッドに関連付けられたEventQueueからディスパッチされた最新のイベントのタイムスタンプを返します。EventQueueからイベントを削除し、そのイベントを返します。static voidinvokeAndWait(Runnable runnable) runnableのrunメソッドがthe system EventQueueのdispatch threadで呼び出されるようにします。static voidinvokeLater(Runnable runnable) runnableのrunメソッドがthe system EventQueueのdispatch threadで呼び出されるようにします。static boolean呼出し元スレッドがthe current AWT EventQueueのディスパッチ・スレッドである場合はtrueを返します。EventQueue上の最初のイベントを削除せずに返します。peekEvent(int id) 指定されたIDを持つイベントがある場合、その中の最初のイベントを返します。protected voidpop()このEventQueueを使用するイベントのディスパッチを停止します。void1.1形式のイベントをEventQueueに送信します。voidpush(EventQueue newEventQueue) 既存のEventQueueを指定されたものに置き換えます。
-
コンストラクタの詳細
-
EventQueue
public EventQueue()EventQueueの新しいインスタンスを初期化します。
-
-
メソッドの詳細
-
postEvent
public void postEvent(AWTEvent theEvent) 1.1形式のイベントをEventQueueに送信します。 同じIDおよびイベント・ソースを持つイベントがキューにある場合は、ソースComponentのcoalesceEventsメソッドが呼び出されます。- パラメータ:
theEvent-java.awt.AWTEventのインスタンス、またはそのサブクラス- スロー:
NullPointerException-theEventがnullの場合
-
getNextEvent
public AWTEvent getNextEvent() throws InterruptedExceptionEventQueueからイベントを削除し、そのイベントを返します。 このメソッドは、別のスレッドによってイベントが送信されるまでブロックされます。- 戻り値:
- 次の
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-eventがnullの場合- 導入されたバージョン:
- 1.2
-
getMostRecentEventTime
public static long getMostRecentEventTime()タイムスタンプを含み、呼出し元スレッドに関連付けられたEventQueueからディスパッチされた最新のイベントのタイムスタンプを返します。 タイムスタンプを持つイベントがディスパッチ中の場合、そのタイムスタンプが返されます。 イベントがまったくディスパッチされていない場合、EventQueueが初期化された時間が返されます。JDKの現在のバージョンでは、InputEvent、ActionEvent、およびInvocationEventだけがタイムスタンプを持ちますが、将来のバージョンではほかのイベント型にもタイムスタンプが追加される可能性があります。 このメソッドはアプリケーションのイベント・ディスパッチ・スレッドからのみ呼び出すようにしてください。 ほかのスレッドから呼び出した場合、System.currentTimeMillis()でレポートされる現在のシステム時刻が返されます。- 戻り値:
- ディスパッチされる、最後の
InputEvent、ActionEvent、または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-newEventQueueがnullの場合- 導入されたバージョン:
- 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(java.lang.Runnable)メソッドまたはinvokeAndWait(java.lang.Runnable)メソッドを使用します。- 戻り値:
the current AWT EventQueueのディスパッチ・スレッドで実行されている場合はtrue- 導入されたバージョン:
- 1.2
- 関連項目:
-
invokeLater
public static void invokeLater(Runnable runnable) runnableのrunメソッドがthe system EventQueueのdispatch threadで呼び出されるようにします。 待ち状態のすべてのイベントが処理されたあとで実行されます。- パラメータ:
runnable-runメソッドがthe system EventQueueのevent dispatch threadで非同期に実行されなければならないRunnable- 導入されたバージョン:
- 1.2
- 関連項目:
-
invokeAndWait
public static void invokeAndWait(Runnable runnable) throws InterruptedException, InvocationTargetException runnableのrunメソッドがthe system EventQueueのdispatch threadで呼び出されるようにします。 待ち状態のすべてのイベントが処理されたあとで実行されます。 呼出しはこれが実行されるまでブロックされます。 このメソッドは、event dispatcher threadから呼び出されるとErrorをスローします。- パラメータ:
runnable-runメソッドがthe system EventQueueのevent dispatch threadで同期で実行されなければならないRunnable- スロー:
InterruptedException- いずれかのスレッドがこのスレッドに割り込んだ場合InvocationTargetException-runnableの動作中にThrowableがスローされる場合- 導入されたバージョン:
- 1.2
- 関連項目:
-