2013-07-18 239 views
1

我是Java GUI新手。所以說,如果我有一個按鈕,並且沒有我提供的事件處理程序,那麼誰來處理該事件?它與事件分派器線程事件處理程序有關嗎? 請也解釋一下事件監聽器的作用,儘管我有處理程序? 事件處理和異常處理是以同樣的方式工作嗎? 謝謝 問候如果未處理事件會發生什麼情況?

+4

如果你沒有爲按鈕分配的事件處理程序,沒有人會來處理該事件。簡單。 – Raptor

+2

如果您單擊該按鈕,則會將事件推送到事件隊列中,事件派發線程會收集該事件,並且輪詢已註冊的偵聽器(隊列)以確定他們是否想要處理該事件。如果沒有人這樣做,那麼沒有人關心(可憐的事件) – MadProgrammer

+0

那麼如何註冊一個事件? – user2594479

回答

0

「我有一個按鈕,沒有我提供的事件處理程序,那麼誰來處理該事件?」

答案:沒有人 !!

有關事件監聽器和處理的詳細信息,請參閱文檔here

更多this SO帖子將clafify所有你想!

+0

這似乎令人困惑,因爲我已經瞭解到事件就像是CPU的中斷。那麼在這種情況下中斷是未處理的? – user2594479

+0

@ user2594479在低層次上,事件是什麼樣的,以及它們對抽象概念無關緊要。事件處理程序和聽衆的概念保持不變 – rahulserver

2

Nobdy的會聽到它。 Java Swing(和其他GUI庫)中的事件機制就像偵聽器(發佈/訂閱)模式。如果沒有註冊名單,則沒有人會處理該事件。

看一看這個: http://www.programcreek.com/2009/01/the-steps-involved-in-building-a-swing-gui-application/。 一般而言:發佈者(例如JButton)發佈許多事件:鼠標點擊,懸停等。可以註冊任意數量的訂閱者(MouseAdapter,...)。每當發佈特定類型的事件(例如MouseEvent)時,右列表進入放置並執行操作。

發佈者不知道註冊了多少用戶和哪些用戶。通過這種方式,他們是鬆散耦合的

編輯:這可能也有助於http://www.freejavaguide.com/java_swing.html

相關問題