Mam pomysł, jak korzystać ze słuchaczy akcji i ich realizacji, ale zastanawiałem się, czy ktoś mógłby mi powiedzieć, jak słuchają wydarzeń? Czy istnieje jakiś mechanizm wyborczy?Jak działa ActionListener?
Odpowiedz
Słuchacze akcji rejestrują się w Zdarzeniach za pomocą urządzenia Observer pattern i są powiadamiani przez główną pętlę zdarzeń o wszelkich zarejestrowanych zdarzeniach. Więc nie, to nie jest mechanizm odpytywania (pull), ale przeciwieństwo - wywołanie zwrotne (push). To jest przykład programowania "nie dzwoń, zadzwonimy do ciebie". Ponieważ wszystko w kodzie uruchamia pojedynczy wątek (pętlę zdarzeń), nie musisz się martwić o synchronizację pomiędzy różnymi zdarzeniami - więc twój kod jest bezpieczny dla wątków.
Istnieje pętla zdarzeń zaimplementowana w rdzeniu AWT. Odbiera wszystkie zdarzenia i wysyła je odpowiednim słuchaczom.
Tutorial wyjaśnia, w jaki sposób one działają dość dobrze: http://download.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
myślę realizacja UI z JComponent
zadziała (połączenia) wszystkich zarejestrowanych zdarzeń po interakcji użytkownika z nim (chyba).
Na przykład, gdy użytkownik kliknie JButton
, przycisk (lub to ui, albo jakiś inny obsługi wewnętrzna) będzie odnośnika wszystkie zarejestrowane ActionListeners
i nazywają ich actionPerformed(...)
metod.
- 1. Przycisk ActionListener
- 2. JCheckbox - ActionListener i ItemListener?
- 3. JSpinner ActionListener alternative
- 4. Najlepsze praktyki ActionListener
- 5. JSF2.0 Component Component actionListener
- 6. jak usunąć MouseListener/ActionListener na JTextField
- 7. Jedna ActionListener dla wielu JButtonów
- 8. ActionListener na komórce JLabel lub JTable
- 9. Wywołanie tego od wewnątrz zagnieżdżone Java ActionListener
- 10. Java Swing: Jak usunąć anonimowego ActionListener ze składnika
- 11. Java - gra liczbowa - wiele ActionListener w tej samej klasie
- 12. Niech ActionListener nasłuchuje zmiany w JTextField zamiast tylko wprowadzać?
- 13. BorderLayout nie działa
- 14. Jak działa ta funkcja javascript/Struktura działa
- 15. Java: Używanie actionlistener do wywoływania funkcji w innej klasie na obiekcie z tej klasy
- 16. jScrollPane setVisible nie działa
- 17. Jak działa aktywacja oprogramowania?
- 18. Jak działa plik .RGS?
- 19. Jak działa System.Threading.Monitor.Enter()?
- 20. Jak działa CorFlags.exe/32BIT +?
- 21. Jak działa Pex?
- 22. Jak działa .insert?
- 23. Jak działa rejestracja domeny?
- 24. Jak działa pobieranie HTTP?
- 25. Jak działa OpenID?
- 26. OpenGL - Jak działa przezroczystość?
- 27. jak działa presentPopoverFromRect?
- 28. Jak działa Request.IsAuthenticated?
- 29. Jak/kiedy działa "after_filter"?
- 30. Jak działa JavaScript []?