JavaTM 2 Platform
Standard Ed. 5.0

java.awt
クラス EventQueue

java.lang.Object
  上位を拡張 java.awt.EventQueue

public class EventQueue
extends Object

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

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

順次処理
このキューからの複数のイベントを同時にディスパッチすることはできません。
キューに入れられた順番と同じ
AWTEvent A が AWTEvent B よりも前に EventQueue のキューに入れられた場合、イベント B がイベント A よりも前にディスパッチされることはありません。

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

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

導入されたバージョン:
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 のインスタンス、またはそのサブクラス
例外:
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 Any event.dispatch()
その他 Component source.dispatchEvent(AWTEvent)
その他 MenuComponent source.dispatchEvent(AWTEvent)
その他 その他 処理されない (無視される)

パラメータ:
event - java.awt.AWTEvent のインスタンス、またはそのサブクラス
例外:
NullPointerException - eventnull の場合

getMostRecentEventTime

public static long getMostRecentEventTime()
呼び出されたスレッドに関連付けられた EventQueue からディスパッチされた、一番新しいタイムスタンプを持つイベントのタイムスタンプを返します。タイムスタンプを持つイベントがディスパッチ中の場合、そのタイムスタンプが返されます。イベントがまったくディスパッチされていない場合、EventQueue が初期化された時間が返されます。JDK の現在のバージョンでは、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 またはそのサブクラスのインスタンス
例外:
NullPointerException - newEventQueuenull の場合
関連項目:
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 の動作中に Throwable がスローされる場合
導入されたバージョン:
1.2
関連項目:
invokeLater(java.lang.Runnable)

JavaTM 2 Platform
Standard Ed. 5.0

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

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。