Tôi có một ý tưởng về cách sử dụng người nghe hành động và thực hiện chúng nhưng tôi đã tự hỏi nếu có ai có thể cho tôi biết làm thế nào để họ lắng nghe các sự kiện? Có cơ chế bỏ phiếu nào không?ActionListener hoạt động như thế nào?
Trả lời
Người nghe hành động đăng ký sự kiện bằng cách sử dụng Observer pattern và họ được thông báo, bởi vòng lặp sự kiện chính của bất kỳ sự kiện nào họ đã đăng ký. Vì vậy, không, nó không phải là một cơ chế bỏ phiếu (kéo), nhưng ngược lại - một cuộc gọi lại (push). Đây là một ví dụ về 'không gọi cho chúng tôi, chúng tôi sẽ gọi cho bạn' lập trình. Bởi vì mọi thứ trong mã của bạn chạy ra khỏi một luồng đơn (vòng lặp sự kiện), bạn không phải lo lắng về việc đồng bộ hóa giữa các sự kiện khác nhau - vì vậy mã của bạn là an toàn.
Có một vòng lặp sự kiện được triển khai thành lõi của AWT. Nó nhận tất cả các sự kiện và gửi chúng đến người nghe thích hợp.
Các hướng dẫn giải thích cách họ làm việc khá tốt: http://download.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
Tôi nghĩ rằng việc thực hiện giao diện người dùng của JComponent
sẽ cháy (gọi) tất cả các sự kiện đăng ký khi người dùng tương tác với nó (tôi nghĩ).
Ví dụ: khi người dùng nhấp vào JButton
, nút (hoặc ui hoặc một số trình xử lý nội bộ khác) sẽ tra cứu tất cả đăng ký ActionListeners
và gọi các phương thức actionPerformed(...)
của họ.
- 1. __iter__ hoạt động như thế nào?
- 2. [UIAlertView show] hoạt động như thế nào?
- 3. Traceroute hoạt động như thế nào?
- 4. ArrayAccess hoạt động như thế nào?
- 5. jQuerys $ .each() hoạt động như thế nào?
- 6. DisplacementMapFilter hoạt động như thế nào?
- 7. MenuItem.SHOW_AS_ACTION_IF_ROOM hoạt động như thế nào?
- 8. Haskell: TVar hoạt động như thế nào?
- 9. GetContentResolver() hoạt động như thế nào?
- 10. P6SPY hoạt động như thế nào?
- 11. Trò chuyện hoạt động như thế nào?
- 12. objc_setAssociatedObject hoạt động như thế nào?
- 13. Scanr hoạt động như thế nào? Haskell
- 14. Codename One hoạt động như thế nào?
- 15. PropertyChangedEventHandler hoạt động như thế nào?
- 16. ResolveProjectReferences hoạt động như thế nào?
- 17. PHP max_execution_time hoạt động như thế nào?
- 18. 'typeof' hoạt động như thế nào?
- 19. C# Events hoạt động như thế nào?
- 20. Nén MPEG4 hoạt động như thế nào?
- 21. gdb hoạt động như thế nào?
- 22. aspx.designer.cs nó hoạt động như thế nào?
- 23. Dropbox hoạt động như thế nào?
- 24. IDataErrorInfo hoạt động như thế nào?
- 25. Sched_setaffinity() hoạt động như thế nào?
- 26. Ember.js reopenClass hoạt động như thế nào?
- 27. Zmq poller hoạt động như thế nào?
- 28. Biểu tượng hoạt động như thế nào?
- 29. Cây Suffix hoạt động như thế nào?
- 30. jQuery.on() hoạt động như thế nào?