Pasākuma klausītājs Java ir paredzēts kāda veida notikumu apstrādei - tas "noklausās" notikumu, piemēram, lietotāja peles klikšķi vai taustiņa nospiešanu, un pēc tam attiecīgi reaģē. Pasākuma klausītājam jābūt savienotam ar notikuma objektu, kas nosaka notikumu.
Piemēram, tādi grafiski komponenti kā a DžButons vai JTextField ir zināmi kā notikumu avoti. Tas nozīmē, ka viņi var ģenerēt notikumus (sauktus par notikumu objekti), piemēram, nodrošinot DžButons lai lietotājs noklikšķinātu, vai a JTextField kurā lietotājs var ievadīt tekstu. Pasākuma klausītāja uzdevums ir noķert šos notikumus un kaut ko darīt ar viņiem.
Kā darbojas notikumu klausītāji
Katrā notikumu klausītāja saskarnē ir iekļauta vismaz viena metode, kuru izmanto līdzvērtīgs notikuma avots.
Šajā diskusijā apsvērsim peles notikumu, t.i., katru reizi, kad lietotājs kaut ko noklikšķina ar peli, kuru pārstāv Java klase MouseEvent. Lai apstrādātu šāda veida pasākumus, vispirms izveidojiet MouseListener klase, kas ievieš Java MouseListener
saskarne. Šajā saskarnē ir piecas metodes; ieviesiet to, kas attiecas uz peles darbības veidu, kuru jūs paredzat savam lietotājam. Šie ir:-
nederīgs peles klikšķis (MouseEvent e)
Aicina, kad uz komponenta ir noklikšķinājis (nospiests un atlaidis) peles taustiņš. -
void mouseEntered (MouseEvent e)
Aicina, kad pele ievada komponentu. -
void mouseExited (MouseEvent e)
Izsaukts, kad pele iziet no komponenta. -
tukšs mousePressed (MouseEvent e)
Izsaukts, kad komponentam ir nospiesta peles poga. -
spēkā neesoša pele atkārtoti ievietota (MouseEvent e)
Izsaukts, kad komponentam ir atbrīvota peles poga
Kā redzat, katrai metodei ir viens notikuma objekta parametrs: konkrētais peles notikums, ar kuru tā ir paredzēta, lai apstrādātu. Tavā MouseListener klase, tu reģistrēties "noklausīties" kādu no šiem notikumiem, lai jūs būtu informēts, kad tie notiek.
Kad notikums tiek aktivizēts (piemēram, lietotājs noklikšķina uz peles, kā norādīts) mouseClicked () metode iepriekš), atbilstoša MouseEvent objekts, kas attēlo šo notikumu, ir izveidots un nodots MouseListener objekts reģistrēts tā saņemšanai.
Pasākumu klausītāju veidi
Pasākumu klausītājus attēlo dažādas saskarnes, no kurām katra ir paredzēta līdzvērtīga notikuma apstrādei.
Ņemiet vērā, ka notikumu klausītāji ir elastīgi, jo vienu klausītāju var reģistrēt, lai “klausītos” vairāku veidu pasākumus. Tas nozīmē, ka līdzīgam komponentu kopumam, kas veic viena veida darbības, viens notikumu klausītājs var rīkoties ar visiem notikumiem.
Šeit ir daži no visizplatītākajiem veidiem:
- ActionListener: Klausās Darbības notikums, t.i., kad ir noklikšķināts uz grafiskā elementa, piemēram, uz pogas vai saraksta vienuma.
- ContainerListener: Klausās a ContainerEvent, kas var rasties, ja lietotājs pievieno interfeisu objektam vai noņem to.
- KeyListener: Klausās a KeyEvent kurā lietotājs nospiež, ieraksta vai atlaiž taustiņu.
- WindowListener: Klausās a WindowEvent, piemēram, aizverot, ieslēdzot vai deaktivizējot logu.
- MouseListener: Klausās a MouseEvent, piemēram, noklikšķinot vai nospiežot peli.