Detektor zdarzeń w Jawa jest zaprojektowany 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ć podłączony do obiektu zdarzenia, który definiuje zdarzenie.
Na przykład komponenty graficzne, takie jak JButton lub JTextField są znane jako źródła zdarzeń. Oznacza to, że mogą generować zdarzenia (tzw obiekty zdarzeń), na przykład zapewnienie JButton do kliknięcia przez użytkownika lub JTextField w którym użytkownik może wprowadzić tekst. Zadaniem nasłuchiwania zdarzeń jest przechwytywanie tych zdarzeń i robienie czegoś z nimi.
Jak działają detektory zdarzeń
Każdy interfejs nasłuchiwania zdarzeń zawiera co najmniej jedną metodę stosowaną przez równoważne źródło zdarzeń.
W tej dyskusji rozważmy zdarzenie myszy, tj. Za każdym razem, gdy użytkownik kliknie coś myszą, reprezentowane przez klasę Java MouseEvent. Aby obsłużyć tego typu zdarzenie, najpierw należy utworzyć
MouseListener klasa implementująca Javę MouseListener berło. Ten interfejs ma pięć metod; zaimplementuj ten, który odnosi się do rodzaju akcji myszy, której przewidywania oczekuje użytkownik. To są:-
void mouseClicked (MouseEvent e)
Wywoływany po kliknięciu (naciśnięciu i zwolnieniu) przycisku myszy na komponencie. -
void mouseEntered (MouseEvent e)
Wywoływany, gdy mysz wchodzi w składnik. -
void mouseExited (MouseEvent e)
Wywoływany, gdy mysz wychodzi z komponentu. -
void mousePressed (MouseEvent e)
Wywoływany po naciśnięciu przycisku myszy na komponencie. -
void mouseReleased (MouseEvent e)
Wywoływany po zwolnieniu przycisku myszy na komponencie
Jak widać, każda metoda ma parametr pojedynczego obiektu zdarzenia: konkretne zdarzenie myszy, które ma obsługiwać. W Twoim MouseListener klasa, ty zarejestrować „słuchać” któregoś z tych wydarzeń, abyś był informowany o ich wystąpieniu.
Gdy zdarzenie zostanie uruchomione (na przykład użytkownik kliknie myszą zgodnie z mouseClicked () metoda powyżej), odpowiedni MouseEvent obiekt reprezentujący to zdarzenie jest tworzony i przekazywany do MouseListener obiekt zarejestrowany, aby go otrzymać.
Rodzaje detektorów zdarzeń
Detektory zdarzeń są reprezentowane przez różne interfejsy, z których każdy przeznaczony jest do przetwarzania równoważnego zdarzenia.
Należy zauważyć, że detektory zdarzeń są elastyczne, ponieważ jeden detektor może zostać zarejestrowany w celu „nasłuchiwania” wielu typów zdarzeń. Oznacza to, że w przypadku podobnego zestawu komponentów wykonujących ten sam typ akcji jeden detektor zdarzeń może obsłużyć wszystkie zdarzenia.
Oto niektóre z najczęstszych typów:
- ActionListener: Słucha za ActionEvent, tj. po kliknięciu elementu graficznego, takiego jak przycisk lub element na liście.
- ContainerListener: Słucha ContainerEvent, co może wystąpić, jeśli użytkownik doda lub usunie obiekt z interfejsu.
- KeyListener: Słucha za Ważne wydarżenie w którym użytkownik naciska, pisze lub zwalnia klucz.
- WindowListener: Słucha WindowEvent, na przykład, gdy okno jest zamknięte, aktywowane lub dezaktywowane.
- MouseListener: Słucha MouseEvent, na przykład po kliknięciu lub naciśnięciu myszy.