|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.awt.EventQueue
public class EventQueue
EventQueue
はどのプラットフォームでも共通のクラスであり、基本となるピアクラスと信頼できるアプリケーションクラスからのイベントをキューに入れます。
キューからイベントを抽出する非同期イベントディスパッチ機構をカプセル化し、ディスパッチされるイベントを引数として EventQueue
の dispatchEvent(AWTEvent)
メソッドを呼び出すことによりディスパッチします。実際の動作は実装によって異なります。唯一の制限は、このキュー (EventQueue
に送られたイベントは合体できる) に実際に入れられたイベントです。
AWTEvent
A が AWTEvent
B よりも前に EventQueue
のキューに入れられた場合、イベント B がイベント A よりも前にディスパッチされることはありません。
ブラウザによっては、コードベースが異なるアプレットを個別のコンテキストに分割し、これらのコンテキストを独立して扱うものがあります。この場合、各コンテキストごとに 1 つの EventQueue
が存在することになります。すべてのアプレットを同じコンテキストに置き、1 つのグローバル EventQueue
ですべてのアプレットを動作させるブラウザもあります。この動作は実装によって決定されます。詳細はブラウザのドキュメントを参照してください。
イベントディスパッチ機能のスレッド問題については「AWT Threading Issues」を参照してください。
コンストラクタの概要 | |
---|---|
EventQueue()
|
メソッドの概要 | |
---|---|
protected void |
dispatchEvent(AWTEvent event)
イベントをディスパッチします。 |
static AWTEvent |
getCurrentEvent()
呼び出されたスレッドに関連付けられた EventQueue に現在ディスパッチされているイベントを返します。 |
static long |
getMostRecentEventTime()
呼び出されたスレッドに関連付けられた EventQueue からディスパッチされた、一番新しいタイムスタンプを持つイベントのタイムスタンプを返します。 |
AWTEvent |
getNextEvent()
EventQueue からイベントを削除し、そのイベントを返します。 |
static void |
invokeAndWait(Runnable runnable)
runnable の run メソッドが EventQueue のディスパッチスレッドで呼び出されるようにします。 |
static void |
invokeLater(Runnable runnable)
runnable の run メソッドが 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 |
コンストラクタの詳細 |
---|
public EventQueue()
メソッドの詳細 |
---|
public void postEvent(AWTEvent theEvent)
EventQueue
へ送信します。同じ ID およびイベントソースを持つキューにイベントがある場合は、ソース Component
の coalesceEvents
メソッドが呼び出されます。
theEvent
- java.awt.AWTEvent
のインスタンス、またはそのサブクラス
NullPointerException
- theEvent
が null
の場合public AWTEvent getNextEvent() throws InterruptedException
EventQueue
からイベントを削除し、そのイベントを返します。このメソッドは、別のスレッドによってイベントが送信されるまでブロックされます。
AWTEvent
InterruptedException
- 別のスレッドがこのスレッドに割り込んだ場合public AWTEvent peekEvent()
EventQueue
の最初のイベントを削除せずに返します。
public AWTEvent peekEvent(int id)
id
- 要求するイベント型の ID
null
protected void dispatchEvent(AWTEvent event)
イベント型 | ソース型 | ディスパッチ方法 |
---|---|---|
ActiveEvent | Any | event.dispatch() |
その他 | Component | source.dispatchEvent(AWTEvent) |
その他 | MenuComponent | source.dispatchEvent(AWTEvent) |
その他 | その他 | 処理されない (無視される) |
event
- java.awt.AWTEvent
のインスタンス、またはそのサブクラス
NullPointerException
- event
が null
の場合public static long getMostRecentEventTime()
EventQueue
からディスパッチされた、一番新しいタイムスタンプを持つイベントのタイムスタンプを返します。タイムスタンプを持つイベントがディスパッチ中の場合、そのタイムスタンプが返されます。イベントがまったくディスパッチされていない場合、EventQueue が初期化された時間が返されます。JDK の現在のバージョンでは、InputEvent
、ActionEvent
、および InvocationEvent
だけがタイムスタンプを持ちますが、将来のバージョンでは他のイベント型にもタイムスタンプが追加される可能性があります。このメソッドはアプリケーションのイベントディスパッチスレッドからのみ呼び出すようにしてください。他のスレッドから呼び出した場合、System.currentTimeMillis()
でレポートされる現在のシステム時刻が返されます。
InputEvent
、ActionEvent
、または InvocationEvent
のタイムスタンプ。このメソッドがイベントディスパッチスレッド以外から呼び出される場合は System.currentTimeMillis()
InputEvent.getWhen()
,
ActionEvent.getWhen()
,
InvocationEvent.getWhen()
public static AWTEvent getCurrentEvent()
EventQueue
に現在ディスパッチされているイベントを返します。メソッドがイベントにアクセスする必要があり、イベントへの参照を引数として受け取るよう設計されていない場合に有効です。このメソッドはアプリケーションのイベントディスパッチスレッドからだけ呼び出すようにしてください。他のスレッドから呼び出した場合、null が返されます。
public void push(EventQueue newEventQueue)
EventQueue
を、指定された EventQueue
で置き換えます。待ち状態のイベントは、処理のために新しい EventQueue
に転送されます。
newEventQueue
- 使用される EventQueue
またはそのサブクラスのインスタンス
NullPointerException
- newEventQueue
が null
の場合pop()
protected void pop() throws EmptyStackException
EventQueue
を使用するイベントのディスパッチを停止します。待ち状態のイベントは、処理のために前の EventQueue
に転送されます。
警告: デッドロック回避のため、このメソッドをサブクラスで同期宣言しないようにします。
EmptyStackException
- この EventQueue
で以前にプッシュが行われていない場合push(java.awt.EventQueue)
public static boolean isDispatchThread()
EventQueue
のディスパッチスレッドの場合に true を返します。このメソッドを使用すると、指定されたタスクを現在の AWT EventDispatchThread
で確実に実行させる (または実行させないようにする) ことができます。
EventQueue
のディスパッチスレッドで動作している場合は truepublic static void invokeLater(Runnable runnable)
runnable
の run
メソッドが EventQueue
のディスパッチスレッドで呼び出されるようにします。待ち状態のすべてのイベントが処理されたあとに呼び出されます。
runnable
- run
メソッドが EventQueue
で同期実行されなければならない Runnable
invokeAndWait(java.lang.Runnable)
public static void invokeAndWait(Runnable runnable) throws InterruptedException, InvocationTargetException
runnable
の run
メソッドが EventQueue
のディスパッチスレッドで呼び出されるようにします。待ち状態のすべてのイベントが処理されたあとで実行されます。呼び出しはこれが実行されるまでブロックされます。このメソッドは、イベントディスパッチャスレッドから呼び出されると Error をスローします。
runnable
- run
メソッドが EventQueue
で同期実行されなければならない Runnable
InterruptedException
- 別のスレッドがこのスレッドに割り込んだ場合
InvocationTargetException
- runnable
の動作中に Throwable がスローされる場合invokeLater(java.lang.Runnable)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。