En begivenhedslytter i Java er designet til at behandle en slags begivenhed - den "lytter" til en begivenhed, f.eks. en brugers museklik eller et tastetryk, og derefter reagerer den tilsvarende. En begivenhedslytter skal være forbundet til et begivenhedsobjekt, der definerer begivenheden.
For eksempel grafiske komponenter som a JButton eller JTextField er kendt som begivenhedskilder. Dette betyder, at de kan generere begivenheder (kaldet begivenhedsobjekter), såsom at give en JButton for en bruger at klikke på, eller a JTextField hvor en bruger kan indtaste tekst. Begivenhedslytterens job er at fange disse begivenheder og gøre noget med dem.
Sådan fungerer begivenhedslyttere
Hver begivenhedslyttergrænseflade inkluderer mindst en metode, der bruges af den ækvivalente begivenhedskilde.
For denne diskussion, lad os overveje en musebegivenhed, dvs. når som helst en bruger klikker på noget med en mus, repræsenteret af Java-klassen MouseEvent. For at håndtere denne type begivenhed opretter du først en
MouseListener klasse, der implementerer Java MouseListener grænseflade. Denne grænseflade har fem metoder; implementere den, der vedrører den type museaktion, du forventer, at din bruger skal tage. Disse er:-
void mouseClicked (MouseEvent e)
Påkaldes, når museknappen er blevet klikket (trykket og frigivet) på en komponent. -
void mouseEntered (MouseEvent e)
Påkaldes, når musen kommer ind i en komponent. -
void mouseExited (MouseEvent e)
Påkaldes, når musen forlader en komponent. -
void mousePression (MouseEvent e)
Påkaldes, når der er trykket på en museknap på en komponent. -
void mouseReleased (MouseEvent e)
Påkaldes, når der er frigivet en museknap på en komponent
Som du kan se, har hver metode en enkelt hændelsesobjektparameter: den bestemte musebegivenhed, den er designet til at håndtere. I din MouseListener klasse, dig Tilmeld at "lytte til" nogen af disse begivenheder, så du bliver informeret, når de finder sted.
Når begivenheden udløses (for eksempel klikker brugeren på musen, som pr mouseClicked () metode ovenfor), en relevant MouseEvent objekt, der repræsenterer denne begivenhed, oprettes og sendes til MouseListener objekt registreret for at modtage det.
Typer af begivenhedslyttere
Begivenhedslyttere er repræsenteret af forskellige grænseflader, der hver især er designet til at behandle en ækvivalent begivenhed.
Bemærk, at begivenhedslyttere er fleksible, idet en enkelt lytter kan registreres til at "lytte" til flere typer begivenheder. Dette betyder, at for et lignende sæt komponenter, der udfører den samme type handling, kan en begivenhedslytter håndtere alle begivenheder.
Her er nogle af de mest almindelige typer:
- ActionListener: Lytter til en ActionEvent, dvs. når der klikkes på et grafisk element, f.eks. en knap eller et element på en liste.
- ContainerListener: Lytter til en ContainerEvent, hvilket kan forekomme, hvis brugeren tilføjer eller fjerner et objekt fra grænsefladen.
- KeyListener: Lytter til en KeyEvent hvor brugeren trykker på, skriver eller frigiver en tast.
- WindowListener: Lytter til en WindowEventfor eksempel når et vindue lukkes, aktiveres eller deaktiveres.
- MouseListener: Lytter til en MouseEvent, f.eks. når der klikkes på eller trykkes på en mus.