Slušatelj događaja u Java osmišljen je za obradu neke vrste događaja - on "sluša" događaj, poput pritiska miša korisnika ili pritiska na tipku, a zatim reagira u skladu s tim. Slušatelj događaja mora biti povezan s objektom događaja koji definira događaj.
Na primjer, grafičke komponente poput a JButton ili JTextField su poznati kao izvori događaja. To znači da mogu generirati događaje (tzv predmeti događaja), kao što je pružanje a JButton kako bi korisnik kliknuo ili JTextField u koji korisnik može unijeti tekst. Posao slušatelja događaja je uhvatiti te događaje i učiniti nešto s njima.
Kako djeluju slušatelji događaja
Svako sučelje slušatelja događaja uključuje barem jednu metodu koju koristi ekvivalentni izvor događaja.
Za ovu raspravu razmotrimo događaj miša, tj. Bilo kada korisnik klikne nešto mišem, predstavljen Java klasom MouseEvent. Da biste rukovali ovom vrstom događaja, prvo biste stvorili MouseListener klase koja implementira Java MouseListener sučelje. Ovo sučelje ima pet metoda; implementirajte onu koja se odnosi na vrstu akcije miša koju predviđate da će korisnik poduzeti. Ovi su:
-
void mouseClickked (MouseEvent e)
Pozvano je kad se komponenta klikne (pritisne i pusti) na komponenti. -
void mouseEntered (MouseEvent e)
Pozvan je kada miš uđe u komponentu. -
void mouseExited (MouseEvent e)
Pozvan je kada miš napusti komponentu. -
void mousePress (MouseEvent e)
Pozvan je kada se komponenta pritisne tipkom miša. -
void mouseProizveden (MouseEvent e)
Pozvan kada se na komponenti pusti tipka miša
Kao što vidite, svaka metoda ima jedan objektni parametar događaja: određeni događaj miša koji je osmišljen za obradu. U svom MouseListener klasa, ti Registar "slušati" bilo koji od ovih događaja kako biste bili obaviješteni kada se dogode.
Kada se pokrene događaj (na primjer, korisnik klikne mišem, kao i na mouseClicked () metoda gore), relevantno MouseEvent objekt koji predstavlja taj događaj kreira se i prosljeđuje u MouseListener objekt registriran da ga primi.
Vrste slušatelja događaja
Slušatelji događaja predstavljeni su različitim sučeljima, od kojih je svako dizajnirano za obradu ekvivalentnog događaja.
Imajte na umu da su slušatelji događaja fleksibilni jer jedan slušatelj može biti registriran za "preslušavanje" više vrsta događaja. To znači da za sličan skup komponenti koje izvode istu vrstu radnje, jedan slušatelj događaja može podnijeti sve događaje.
Evo nekoliko najčešćih vrsta:
- ActionListener: Sluša za an ActionEvent, tj. kada se klikne grafički element poput gumba ili stavke na popisu.
- ContainerListener: Sluša za a ContainerEvent, do kojeg može doći ako korisnik doda ili ukloni objekt iz sučelja.
- KeyListener: Sluša za a KeyEvent u kojem korisnik pritisne, unese ili otpusti ključ.
- WindowListener: Sluša za a WindowEvent, na primjer, kada se prozor zatvori, aktivira ili deaktivira.
- MouseListener: Sluša za a MouseEvent, primjerice kad se miš klikne ili pritisne.