|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.EventQueue
public class EventQueue
EventQueue
是一個與平臺無關的類別,它將來自於底層同位體類別和受信任的應用程序類別的事件列入佇列。
它封裝了非同步事件指派機制,該機制從佇列中提取事件,然後通過對此 EventQueue
調用 dispatchEvent(AWTEvent)
方法來指派這些事件(事件作為參數被指派)。該機制的特殊行為是與實作有關的。指派實際排入到該佇列中的事件(注意,正在發送到 EventQueue
中的事件可以被合併)的唯一要求是:
AWTEvent
A 比 AWTEvent
B 先排入到 EventQueue
中,那麼事件 B 不能在事件 A 之前被指派。
一些瀏覽器將不同程式碼基中的 applet 分成獨立的上下文,並在這些上下文之間建立一道道牆。在這樣的場景中,每個上下文將會有一個 EventQueue
。其他瀏覽器將所有的 applet 放入到同一個上下文中,這意味著所有 applet 只有一個全體 EventQueue
。該行為是與實作有關的。有關更多資訊,請參照瀏覽器的文檔。
有關事件指派機制的執行緒問題,請參閱 AWT 執行緒問題。
建構子摘要 | |
---|---|
EventQueue()
|
方法摘要 | |
---|---|
protected void |
dispatchEvent(AWTEvent event)
指派一個事件。 |
static AWTEvent |
getCurrentEvent()
返回當前正在被 EventQueue (它與正在調用的執行緒相關)指派的事件。 |
static long |
getMostRecentEventTime()
返回最近事件的時間戳(如果有),該事件從 EventQueue (它與正在調用的執行緒相關)進行指派。 |
AWTEvent |
getNextEvent()
從 EventQueue 中移除一個事件,並返回該事件。 |
static void |
invokeAndWait(Runnable runnable)
導致 runnable 的 run 方法在 the system EventQueue 的指派執行緒中被調用。 |
static void |
invokeLater(Runnable runnable)
導致 runnable 的 run 方法在 the system 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 。 |
從類別 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 | 所有 | 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
有時間戳;但是,JDK 的未來版本可能將時間戳添加到其他事件型別中。注意,該方法只應該從應用程序事件的指派執行緒進行調用。如果從另一個執行緒調用該方法,則返回當前系統的時間(由 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
以備處理。
newEventQueue
- 要使用的 EventQueue
(或其子類別的)的實例
NullPointerException
- 如果 newEventQueue
為 null
pop()
protected void pop() throws EmptyStackException
EventQueue
指派事件。任何掛起的事件都被傳輸到以前的 EventQueue
以備處理。
警告:為了避免死鎖,不要在子類別中將該方法宣告為 synchronized。
EmptyStackException
- 如果以前沒有對該 EventQueue
執行 push 操作push(java.awt.EventQueue)
public static boolean isDispatchThread()
EventQueue
的指派執行緒,則返回 true。使用此調用確保給定的任務正在當前 AWT EventDispatchThread
上執行(或沒有執行)。
EventQueue
的指派執行緒上運行,則返回 true。public static void invokeLater(Runnable runnable)
runnable
的 run
方法在 the system EventQueue
的指派執行緒中被調用。
runnable
- Runnable
物件,其 run
方法應該在 EventQueue
上同步執行invokeAndWait(java.lang.Runnable)
public static void invokeAndWait(Runnable runnable) throws InterruptedException, InvocationTargetException
runnable
的 run
方法在 the system EventQueue
的指派執行緒中被調用。在所有掛起事件被處理後才發生。在這發生之前調用被阻塞。如果從事件指派執行緒進行調用,則該方法將拋出 Error。
runnable
- Runnable
物件,其 run
方法應該在 EventQueue
上同步執行
InterruptedException
- 如果任何執行緒中斷了該執行緒
InvocationTargetException
- 如果運行 runnable
時拋出一個 throwableinvokeLater(java.lang.Runnable)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。