G�rer les �v�nements
Voyons maintenant comment interagir avec l'utilisateur. Pour ce faire, on va devoir d�couvrir la programmation �v�nementielle. Jusqu'� pr�sent, les programmes s'ex�cutaient de mani�re lin�aire avec quelques exceptions dues aux instructions de contr�le de flux et aux appels de m�thodes.
Maintenant, avec les interfaces graphiques, on rencontre la programmation �v�nementielle, c'est-�-dire que des bouts de code vont �tre ex�cut�s suite � un certain �v�nement, par exemple, l'utilisateur clique sur un bouton, il enfonce une touche du clavier, ...
Programmation �v�nementielle
On a donc tout d'abord les �v�nements qui ont diverses formes : un clic de la souris, une touche du clavier enfonc�e, s�lection d'un �l�ment d'une liste, fermeture de la fen�tre, ...
Chaque �l�ment qui doit r�pondre � un �v�nement va devoir surveiller cet �v�nement, pour ce faire, l'�l�ment va utiliser un listener, c'est-�-dire qu'il va mettre l'�v�nement sur �coute.
Enfin, une fois que l'�v�nement survient, il va falloir faire quelque chose, ex�cuter un bout de code, le bout de code � ex�cuter est appel� handler.

La figure j10.19 montre un exemple de programmation �v�nementielle. On a un certain �l�ment et trois handler (les m�thodes close()
, save()
et update()
. Ensuite, l'�l�ment �coute certains �v�nements.
Lors d'un clic sur le bouton gauche de la souris, ou lors d'un clic sur la croix de la fen�tre, il faut ex�cuter l'handler close()
, et lors de la frappe d'une touche du clavier, il faut ex�cuter l'handler update()
et l'handler save()
.
Ceci nous permet de voir plusieurs choses : Un �l�ment peut �couter plusieurs �v�nements, on peut associer un m�me handler � plusieurs �v�nements, un �l�ment ne doit pas �couter tous les �v�nements possibles et enfin, on peut associer plusieurs handlers � un m�me �v�nement.
Les listeners
En Java, les diff�rents �v�nements possibles sont rassembl�s dans diff�rentes interfaces qui se trouvent pour la plupart dans le package java.awt.event
. Les �v�nements sont rassembl�s en cat�gories. Pour commencer par le plus simple, on a l'interface ActionListener
qui ne contient qu'un seul �v�nement, l'�v�nement actionPerformed
.