Posluchač událostí v Jáva je navržen tak, aby zpracoval nějaký druh události - „poslouchá“ událost, jako je kliknutí myší nebo stisknutí klávesy, a poté odpovídajícím způsobem reaguje. Posluchač událostí musí být připojen k objektu události, který definuje událost.
Například grafické komponenty jako JButton nebo JTextField jsou známé jako zdroje událostí. To znamená, že mohou generovat události (nazývané objekty událostí), jako je poskytnutí a JButton pro uživatele kliknout, nebo JTextField do kterého může uživatel zadávat text. Úkolem posluchače je zachytit tyto události a něco s nimi udělat.
Jak fungují posluchači událostí
Každé rozhraní posluchače událostí obsahuje alespoň jednu metodu používanou ekvivalentním zdrojem události.
Pro tuto diskusi se podívejme na událost myši, tj. Kdykoli uživatel klikne myší na myš, představovanou třídou Java MouseEvent. Chcete-li zpracovat tento typ události, měli byste nejprve vytvořit MouseListener třída, která implementuje Javu MouseListener rozhraní. Toto rozhraní má pět metod; implementovat ten, který se vztahuje k typu akce myši, kterou očekáváte, že uživatel provede. Tyto jsou:
-
void mouseClicked (MouseEvent e)
Vyvolá se po kliknutí (stisknutí a uvolnění) tlačítka myši na komponentu. -
void mouseEntered (MouseEvent e)
Vyvoláno, když myš vstoupí do komponenty. -
void mouseExited (MouseEvent e)
Vyvoláno, když myš opustí komponentu. -
void mousePressed (MouseEvent e)
Vyvoláno po stisknutí tlačítka myši na součásti. -
void mouseReleased (MouseEvent e)
Vyvoláno po uvolnění tlačítka myši na součásti
Jak vidíte, každá metoda má jeden parametr objektu události: konkrétní událost myši, kterou má zpracovat. Ve vašem MouseListener třída, ty Registrovat „poslouchat“ jakoukoli z těchto událostí, abyste byli informováni, když k nim dojde.
Když událost nastane (například uživatel klepne myší, podle mouseClicked () metoda výše), relevantní MouseEvent objekt představující danou událost je vytvořen a předán do MouseListener objekt zaregistrován pro jeho přijetí.
Typy posluchačů událostí
Posluchače událostí jsou reprezentována různými rozhraními, z nichž každé je navrženo pro zpracování ekvivalentní události.
Posluchači událostí jsou flexibilní v tom, že jeden posluchač může být zaregistrován pro „poslouchání“ více typů událostí. To znamená, že u podobné sady komponent, které provádějí stejný typ akce, může jeden posluchač zpracovat všechny události.
Zde jsou některé z nejčastějších typů:
- ActionListener: Poslouchá ActionEvent, tj. když se klikne na grafický prvek, například na tlačítko nebo položku v seznamu.
- ContainerListener: Poslouchá a ContainerEvent, k čemuž může dojít, pokud uživatel přidá nebo odebere objekt z rozhraní.
- KeyListener: Poslouchá KeyEvent ve kterém uživatel stiskne, napíše nebo uvolní klíč.
- WindowListener: Poslouchá a WindowEventnapříklad když je okno zavřeno, aktivováno nebo deaktivováno.
- MouseListener: Poslouchá a MouseEvent, například když kliknete myší nebo stisknete.