2016-04-28 40 views
0

有人能解釋對象在Java Swing中的用途EventQueue有人可以解釋EventQueue對象的用途嗎?

我對如何應用排隊事件感到困惑。也許提供通用的事件隊列會很有幫助。

+0

*「.. EventQueue對象服務於Java Swing?」*雖然Swing使用它,但EventQueue來自AWT。 –

+0

我大多數情況下,你不會與'EventQueue'交互。 EventQueue是由Event Dispatching Thread處理的一系列事件,這些事件被傳遞給組件和感興趣的各方,以便提供有關事件的通知,如鼠標點擊或鍵盤事件。 EventQueue提供了一個「順序」的概念,其中事件只能以線性方式一個接一個地發生,並且通常按時間順序排列(所以如果我先移動鼠標,我的擊鍵不能打賭我的鼠標事件) – MadProgrammer

回答

2

因爲Swing是single threaded,它採用了EventQueue舉行的Runnable實例,以便他們可以派出順序並在順序貼,無論是由系統或程序產生。 必需品的用法是通過EventQueue.invokeLater()發佈事件,這可確保在event dispatch thread上構建並操縱Swing GUI對象只有。您可以使用您自己的實施替換AWT EventQueue,如here所示,以查看放入隊列中的事件。