Listeners
Listeners
Listeners
Les listeners
10/12/2021 1
●
Un clic souris, la frappe d’une touche au clavier ou le
changement de la taille d’une fenêtre sont des exemples
d’événements
●
Java classe les événements en deux niveaux : les événements
de bas niveau (par exemple un clic dans une fenêtre) et les
événements de haut niveau (par exemple une action sur un
bouton qui peut provenir d’un clic souris ou d’une frappe au
clavier).
10/12/2021 2
●
En Java, les événements n’ont pas une valeur physique, mais
logique
●
Un événement dépend du composant qui l’a généré
●
On appelle source d’un événement l’objet qui l’a généré.
10/12/2021 3
Exemple
●
L’événement émis suite à un clic souris dans une fenêtre est de
type MouseEvent ;
●
L’événement émis suite à un clic souris sur un bouton est de
type ActionEvent, …
10/12/2021 4
●
Tout événement qui peut se produire dans une interface
graphique est de type XXXEvent, classe du paquetage
java.awt.event ou du paquetage javax.swing.event dérivée de la
classe EventObject (classe du paquetage java.util dérivée de la
classe Object).
10/12/2021 5
Traiter un évènement
●
Un composant ne traite pas forcément lui-même les
événements qu’il génère
●
Il délègue ce traitement à des objets particuliers appelés
écouteurs (un composant peut être son propre écouteur)
●
En fonction des événements qu’ils traitent, un écouteur doit
implémenter une interface particulière, dérivée de l’interface
EventListener, qui correspond à une catégorie d’événements.
10/12/2021 6
→ Pour traiter un événement de type XXXEvent, un écouteur
doit implémenter l’interface XXXListener.
10/12/2021 7
Exemple
●
L’interface MouseListener correspond à une catégorie
d’événements souris de type MouseEvent
●
Elle comporte cinq méthodes correspondant chacune à un
événement souris particulier.
10/12/2021 8
●
public void mousePressed(MouseEvent e)
●
Appelé lorsqu’un bouton de la souris est pressé sur un
composant
●
public void mouseReleased(MouseEvent e)
●
Appelé lorsqu’un bouton de la souris est relâché sur un
composant
10/12/2021 9
●
public void mouseClicked(MouseEvent e)
●
Appelé lors d’un clic souris sur un composant (la souris n’a pas
été déplacée entre l’appui et le relâchement du bouton)
●
public void mouseEntered(MouseEvent e)
●
Appelé lorsque la souris passe de l’extérieur à l’intérieur d’un
composant
10/12/2021 10
●
public void mouseExited(MouseEvent e);
●
Appelé lorsque la souris sort d’un composant (la souris passe
de l’intérieur à l’extérieur du composant)
10/12/2021 11
Intercepter un évènement
●
Lorsqu’un composant veut intercepter un événement de type
XXXEvent, il doit le préciser dans son constructeur en appelant
la méthode addXXXListener(XXXListener objetEcouteur), où
l’argument objetEcouteur correspond à l’objet écouteur chargé
de traiter l’événement
10/12/2021 12
Exemple
●
MonProgEvtClic1.java
10/12/2021 13
●
MonProgEvtClic2.java
10/12/2021 14
Exercice
10/12/2021 15
10/12/2021 16
10/12/2021 17