Vous êtes sur la page 1sur 44

Principe de la programmation

vnementielle en Java
Cours Java - F. Michel
I. Nature des vnements
Que se passe-t-il lors d'un clic ?
JFrame
MonJPanel
Que se passe-t-il lors d'un clic ?

Un clic gnre ce qu'on appelle un vnement


Evnement

Comme (presque tout en Java! il s'agit en "ait d'un


objet
L'objet vnement de Java
L'objet vnement de Java
Qui cre ce type d'objet ?

#l e$iste un thread de la J%M charg de rcuprer


les interactions utilisateurs

&i on clique sur un 'outon! ce thread cre un


vnement (du 'on t(pe en utilisant le 'outon
comme source pour le constructeur

Consquences ) gnralement on ne cre pas les


vnements! on ne fait ue les !rer.
"iffrents types d'vnements

*es vnements peuvent +tre distingus selon ,


t(pes )

bas niveau ) vnements "en+tre-s(stme et


interactions 'as niveau (un clique de souris sur un
composant! la "rappe d'une touche du clavier

#mantiues ) .out le reste (un 'outon a t


press

#l "aut le plus possi'le traiter les vnements


smantiques )

ils contiennent une in"ormation de plus haut niveau .

#ls centralisent les vnements de 'as niveau )


qu'on presse un 'outon avec le clavier ou la
souris! le rsultat est le m+me pour l'application.
II. Exemples d'vnements
java$a%t$&'(Event
java$a%t$event$&ctionEvent
java$a%t$event$)omponentEvent
java$a%t$event$*nputEvent
java$a%t$event$MouseEvent
java$a%t$event$+eyEvent
III. Gestion des vnements
)omment !rer des vnements ?

/n dispose d'un trs grand nom're d'vnements

0es vnements 'as niveau

0es vnements smantiques

1ue "aut-il en "aire 2

#l "aut les couter ) tout le principe de la


programmation vnementielle repose sur la
d"inition des vnements et des o'3ets qui les
coutent
Qu'est-ce u'un couteur ?

Un couteur est un o'3et destin 4 recevoir et 4 grer les


vnements gnrs par le s(stme

*es couteurs principau$ se trouvent eu$ aussi dans le


pac,a!e java$a%t$event

*a plupart du temps! il s'agit seulement d'une inter"ace


3ava ) n'importe quel o'3et peut devenir un couteur du
moment qu'il implmente les mthodes d"inies dans
l'inter"ace.

5$emple )
3ava.a6t.event.7ction*istener
java$a%t$event$&ctionListener
)ration d'un couteur
-tilisation de l'couteur

/n clique sur le 'outon! que se passe-t-il 2

8ien ne se passe ) rien ne s'crit sur la sortie


standard 9999
Principe de l'coute

Par d"aut! un couteur ne rcupre pas tous les


vnements produits par le s(stme.

:eureusement 99999

#l n'coute ue les objets u'on lui dit d'couter 9

"onc. *l doit /tre associ 0 un objet qui gnre des


vnements

7insi! les objets qui gnrent des vnements poss1dent


des mt2odes ui permettent de leur associer des
couteurs
java$a%t$event$&ctionListener
java3$s%in!$J4utton
5appel sur l'application6 7 classes
JFrame
MonJPanel
MonEcouteur
-tilisation d'un couteur
8 boutons 6 9 couteur par objet
5emarues sur les couteurs

#l est possi'le d'a3outer plusieurs couteurs 4 un


seul o'3et

#l est possi'le d'couter plusieurs o'3ets avec un


seul couteur
9 couteur pour 8 objets
Probl1me 6 la source ?

Comment "aire pour distinguer les deu$ avec un


seul couteur 2
5appel 6 L'objet vnement de Java
:n conna;t la source <<
Pour rsumer
5emarue

Un o'3et peut +tre son propre couteur 9

Car un couteur est une interface

0onc! il n'( a aucune raison qu'il ne puisse pas


implmenter les mthodes ncessaires
IV. coute des vnements souris
java$a%t$event$MouseListener
java$a%t$event$MouseListener
java$a%t$event$MouseEvent
java$a%t$event$MouseEvent
java$a%t$event$MouseListener
java$a%t$event$MouseListener
&utre e3emple
java$a%t$event$Mouse&dapter
5appel6 un objet peut /tre son
propre couteur <