US

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.

Programmation �v�nementielle
fig j10.19 Programmation �v�nementielle

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.