0% ont trouvé ce document utile (0 vote)
16 vues15 pages

Gestion des événements en Java

Transféré par

misssmile780
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
16 vues15 pages

Gestion des événements en Java

Transféré par

misssmile780
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Gestion des événements en Java

1
Les Graphic Events (événements
graphiques)
1. Interaction de l'utilisateur
(clic de souris)
Un événement est un objet créé
lorsqu'une action particulière est
effectué sur un objet source.

b : Bouton

2. création
new d'un évènement

event : Événement

source=b
2

action=b.getCommand()
Les Objets Event
• Un objet événement encapsule une information spécifique à une instance
d'événement
• exemple : un événement représentant un clic souris contient la
position du pointeur souris
• Les différents types d'événements sont représentés par des classes
différentes :
• ActionEvent, MouseEvent …
• → Toute classe d'événement est sous classe de la classe
java.util.EventObject

3
Hiérarchie des Events

→Une
Unepartie
partiede
delalahiérarchie
hiérarchiedes
desévénements
événementsAWT
AWT

4
Les Listeners (écouteurs)

s te n er1) listener1 : Écouteur


iste n e r( l i
d d ActionL
b. a

b : Bouton b.addActi
onListene
r(listener2
)
b. a listener2 : Écouteur
dd
Ac
tio nL
i s te
ne
r(li
s te n
er3
Un écouteur est un objet )
réagissant aux évènements d'un
listener3 : Écouteur
objet source. Pour qu'un objet
puisse écouter un objet source, il
doit s'enregistrer auprès de celui- 5
ci
Récepteur d'événement ou Listener
• Un récepteur d'événements est un objet qui doit être prévenu ("notified")
par la source lorsque certains événements se produisent
• les notifications d'événements se font en invoquant des méthodes de
l'objet qui écoute, un événement étant transmis en paramètre
• → Pour chaque classe d'événements une interface spécifique
définit les méthodes à appeler pour notifier les événements de
cette classe
exemple : interface ActionListener pour les ActionEvent

Toute classe désirant recevoir des notifications d'un événement donné


devra implémenter cette interface.

un récepteur d’ActionEvent doit implémenter l'interface ActionListener

6
Interface d'écoute des événements

• Toutes les interfaces d’écoute d'événements héritent de


java.util.EventListener
• Par convention toutes les interfaces des récepteurs
d'événements ont des noms de la forme
<EventType>Listener
• exemple : les événements de AWT et les interfaces
correspondantes pour les récepteurs

7
Méthodes des Interfaces d'écoute

• Une interface d’écoute d'événements peut


contenir un nombre quelconque de méthodes,
chacune correspondant à un événement
différent

8
Propagation des événements

1. Interaction de l'utilisateur 3. propagation de l'évènement


(clic de souris)

)
e d ( event listener1 : Écouteur
io n Perform
1 .a c t
er
listen

b : Bouton listener
2.action
Perform
e d(event
list ) listener2 : Écouteur
e ne
r3 .
ac
t i on
2. création Pe
rfo
rm
new d'un évènement ed
(ev
e n t)

event : Événement listener3 : Écouteur



source=b
9

action=b.getCommand()
Enregistrement des Listener
• Une source d'événements propose des
méthodes d'enregistrement dont la signature
a la forme suivante :
• public void add<ListenerType>(<ListenerType> listener)

A tout moment un objet récepteur d'événements peut annuler sa demande de


Notification: une source d'événements pour une interface d'écoute d'événements
propose aussi des méthodes d'annulation de notification dont la signature a la forme
suivante : 10
● public void remove<ListenerType>(<ListenerType> listener)
Exemple : MouseMotionListener

11
Gestion des événements en résumé
→ identifier l’objet à l’origine des événements (souvent un composant)
• identifier le type de l ’événement que l ’on veut intercepter pour cela : lister
dans sa classe toutes les méthodes de type addXXXListener
• créer une classe qui implémente l’interface associée à l’événement que l’on
veut gérer
• celle du composant (ou du conteneur du composant) à l’origine de l
’événement ("facilité" d ’implémentation)
• une classe indépendante qui détermine la frontière entre l ’interface
graphique (émission des événements) et ce qui représente la logique
de l ’application (traitement des événements). Une bonne séparation
permet de faciliter l’évolution du logiciel.
• Implémenter dans cette classe la (les) méthode(s) associées à l’événement.
• L’événement passé en paramètre contient des informations qui
peuvent être utiles (position du curseur, état du clavier, objet
source de l’événement).
12
Des adaptateurs aux classes internes

• Le modèle événementiel de JAVA 1.1 peut rapidement devenir


difficile à gérer
– si un Listener est à l'écoute d'un grand nombre sources,
– si un objet est à l'écoute d'événements issus de plusieurs
sources du même type (le récepteur ne peut implémenter
qu'une seule fois l'interface réceptrice)
• → Cela peut conduire à du code difficile à lire et/ou difficile à
écrire
• Une solution consiste à introduire un objet "médiateur"
entre la source d'événements et le récepteur d'événements
• son role : adapter la source aux besoins spécifiques d'où
le nom d'adaptateur d'événements

13
Exemple

→ Problème ca fait beaucoup de nouvelles petites classes et le code est dispersé, et 14


plus difficile à lire …
Utilisation des classe anonymes
comme adapteurs

Alors que faire ?

Classe anonyme adaptateur


d’événements pour le JButton

15

Vous aimerez peut-être aussi