Nasłuchiwanie zdarzeń Java i sposób ich działania

Java zapewnia wiele typów detektorów zdarzeń do przetwarzania zdarzeń GUI

Dziewczyna korzystająca z komputera przy biurku

Detektor zdarzeń w Javie odbiera i przetwarza zdarzenia GUI jak kliknięcie myszą. Gary John Norman/Getty Images





Słuchacz zdarzeń wJawajest przeznaczony do przetwarzania pewnego rodzaju zdarzenia — „nasłuchuje” zdarzenia, takiego jak kliknięcie myszą użytkownika lub naciśnięcie klawisza, a następnie odpowiednio reaguje. Detektor zdarzeń musi być połączony z obiektem zdarzenia, który definiuje zdarzenie.

Na przykład komponenty graficzne, takie jak a JPrzycisk ​lub JTextField są znane jako źródła zdarzeń . Oznacza to, że mogą generować zdarzenia (tzw obiekty eventowe ), takich jak dostarczanie JPrzycisk aby użytkownik mógł kliknąć, lub JTextField w którym użytkownik może wprowadzić tekst. Zadaniem słuchacza zdarzeń jest wyłapanie tych zdarzeń i zrobienie z nimi czegoś.



Jak działają detektory zdarzeń

Każdy interfejs nasłuchiwania zdarzeń zawiera co najmniej jedną metodę używaną przez równoważne źródło zdarzeń.

Na potrzeby tej dyskusji rozważmy zdarzenie myszy, tj. za każdym razem, gdy użytkownik kliknie coś myszą, reprezentowane przez klasę Java MyszZdarzenie . Aby obsłużyć tego typu zdarzenie, najpierw utworzysz Odbiornik myszy klasa implementująca Java Odbiornik myszy interfejs. Ten interfejs ma pięć metod; zaimplementuj tę, która odnosi się do rodzaju działania myszy, którego oczekujesz od użytkownika. To są:



  • |_+_|
    Wywoływane po kliknięciu przycisku myszy (naciśnięciu i zwolnieniu) na komponencie.
  • |_+_|
    Wywoływane, gdy mysz wchodzi do komponentu.
  • |_+_|
    Wywoływane, gdy mysz wychodzi z komponentu.
  • |_+_|
    Wywoływane po naciśnięciu przycisku myszy na komponencie.
  • |_+_|
    Wywoływane po zwolnieniu przycisku myszy na komponencie

Jak widać, każda metoda ma jeden parametr obiektu zdarzenia: konkretne zdarzenie myszy, które ma obsłużyć. W Twoim Odbiornik myszy klasa, ty Zarejestruj się aby „posłuchać” któregokolwiek z tych zdarzeń, aby być informowanym o ich wystąpieniu.

Gdy zdarzenie zostanie uruchomione (na przykład użytkownik kliknie myszą, zgodnie z Kliknięcie myszą() metody powyżej), odpowiedni MyszZdarzenie obiekt reprezentujący to zdarzenie jest tworzony i przekazywany do Odbiornik myszy obiekt zarejestrowany do jego odbioru.

Rodzaje słuchaczy zdarzeń

Detektory zdarzeń są reprezentowane przez różne interfejsy, z których każdy jest przeznaczony do przetwarzania równoważnego zdarzenia.

Należy zauważyć, że detektory zdarzeń są elastyczne, ponieważ jeden detektor może być zarejestrowany do „nasłuchiwania” wielu typów zdarzeń. Oznacza to, że w przypadku podobnego zestawu komponentów, które wykonują ten sam typ akcji, jeden detektor zdarzeń może obsłużyć wszystkie zdarzenia.



Oto niektóre z najczęstszych typów:

    AkcjaListener : Nasłuchuje an AkcjaZdarzenie , tj. po kliknięciu elementu graficznego, takiego jak przycisk lub pozycja na liście. Odbiornik kontenerów : Nasłuchuje KontenerZdarzenie , co może wystąpić, jeśli użytkownik doda lub usunie obiekt z interfejsu.
  • KeyListener : Nasłuchuje Ważne wydarżenie w którym użytkownik naciska, wpisuje lub zwalnia klawisz.
  • WindowListener : Nasłuchuje OknoZdarzenie , na przykład, gdy okno jest zamknięte, aktywowane lub dezaktywowane. Odbiornik myszy : Nasłuchuje MyszZdarzenie , na przykład po kliknięciu lub naciśnięciu myszy.