我是Java GUI新手。所以說,如果我有一個按鈕,並且沒有我提供的事件處理程序,那麼誰來處理該事件?它與事件分派器線程事件處理程序有關嗎? 請也解釋一下事件監聽器的作用,儘管我有處理程序? 事件處理和異常處理是以同樣的方式工作嗎? 謝謝 問候如果未處理事件會發生什麼情況?
回答
這似乎令人困惑,因爲我已經瞭解到事件就像是CPU的中斷。那麼在這種情況下中斷是未處理的? – user2594479
@ user2594479在低層次上,事件是什麼樣的,以及它們對抽象概念無關緊要。事件處理程序和聽衆的概念保持不變 – rahulserver
Nobdy的會聽到它。 Java Swing(和其他GUI庫)中的事件機制就像偵聽器(發佈/訂閱)模式。如果沒有註冊名單,則沒有人會處理該事件。
看一看這個: http://www.programcreek.com/2009/01/the-steps-involved-in-building-a-swing-gui-application/。 一般而言:發佈者(例如JButton)發佈許多事件:鼠標點擊,懸停等。可以註冊任意數量的訂閱者(MouseAdapter,...)。每當發佈特定類型的事件(例如MouseEvent)時,右列表進入放置並執行操作。
發佈者不知道註冊了多少用戶和哪些用戶。通過這種方式,他們是鬆散耦合的
- 1. 如果在Application_Start中引發未處理的異常,會發生什麼情況?
- 2. 如果DTD鏈接無處可逃,會發生什麼情況?
- 3. 如果未捕獲到異常,會發生什麼情況?
- 4. 如果MySQL數據庫未關閉,會發生什麼情況?
- 5. 如果StreamReader或StreamWriter未關閉,會發生什麼情況?
- 6. 如果決策器未運行,會發生什麼情況
- 7. 如果未安裝代碼合同,會發生什麼情況?
- 8. 未處理的socket.io事件會發生什麼?
- 9. 如果正在處理的活套正在退出,會發生什麼情況?
- 10. 如果插件GUI關閉,會發生什麼情況?
- 11. 如果寫入文件失敗,會發生什麼情況?
- 12. 如果finally塊引發異常,會發生什麼情況?
- 13. 如果CFile :: Write引發異常會發生什麼情況?
- 14. 如果iOS分發證書過期會發生什麼情況?
- 15. 如果我的IExceptionPublisher引發異常,會發生什麼情況?
- 16. 更改文檔時窗口事件會發生什麼情況?
- 17. Flume - 如果客戶批量大於通道事務處理能力,會發生什麼情況?
- 18. 爲什麼會發生這種情況?
- 19. 如果有人拿到我的appsecret,會發生什麼情況?
- 20. 如果php.ini丟失,會發生什麼情況?
- 21. minimax:如果min不起作用會發生什麼情況
- 22. 如果您打破Lock()語句,會發生什麼情況?
- 23. 如果NSURLCache已滿,會發生什麼情況?
- 24. 如果委託不存在,會發生什麼情況?
- 25. 如果我不調用transaction.close或transaction.rollback,會發生什麼情況?
- 26. 如果Web服務更改參數會發生什麼情況?
- 27. 如果ExecutorService的隊列已滿,會發生什麼情況
- 28. 如果minSdkVersion低於targetSdkVersion,會發生什麼情況?
- 29. 如果CImage :: Load方法失敗會發生什麼情況?
- 30. 如果超時,會發生什麼情況?
如果你沒有爲按鈕分配的事件處理程序,沒有人會來處理該事件。簡單。 – Raptor
如果您單擊該按鈕,則會將事件推送到事件隊列中,事件派發線程會收集該事件,並且輪詢已註冊的偵聽器(隊列)以確定他們是否想要處理該事件。如果沒有人這樣做,那麼沒有人關心(可憐的事件) – MadProgrammer
那麼如何註冊一個事件? – user2594479