Interfaces Graphiques en Java
TD 2

Évènements de fenêtres, de boutons.


Exercice 1 : Associer des actions aux boutons

Créer une fenêtre contenant un bouton de label "Test" qui, lorsqu'il reçoit un clic, affiche "Test clic" dans la fenêtre de contrôle (console ou xterm).
Pour cela, il faut créer le bouton, puis lui ajouter, par la méthode addActionListener() un écouteur implantant l'interface ActionListener, dont la méthode actionPerformed() effectue l'affichage dans la fenêtre de contrôle.

Utiliser la même technique avec trois boutons, "Rouge", "Vert" et "Bleu", qui permettent de changer la couleur de fond.
Produire un code qui permette de rajouter facilement une nouvelle couleur.


Exercice 2 : Évènement de fenêtre

Dans l'ensemble des exemples précédents, que se passe-t-il lorsqu'on ferme la fenêtre ?

  1. Pour terminer proprement l'application lorsqu'on ferme la fenêtre, pour cela, faire implanter à la frame la méthode windowClosing() de l'interface java.awt.event.WindowListener. Afin d'éviter de donner un code vide pour toutes les autres méthodes de WindowListener, utiliser un WindowAdapter.
  2. De la même manière, faire en sorte que la couleur de fond de la fenêtre soit verte lorsqu'elle est active et rouge lorsqu'elle est inactive (méthode windowActivated et windowDeactivated, attention il n'y a pas de 's').

Il existe une façon plus simple (à partir du JDK1.3) pour fermer proprement une fenêtre en utilisant la méthode setDefaultCloseOperation() de la classe JFrame (voir la doc :).


Exercice 3 : Jeux de boutons

Créer et détruire dynamiquement des boutons.
On souhaite écrire un programme qui affiche une fenêtre dans laquelle des boutons vont dynamiquement apparaître ou disparaître. Plus précisément, écrire successivement du code permettant le comportement suivant:

  1. Initialement, un seul bouton "New" est présent. Un clic sur ce bouton fait apparaître un nouveau bouton étiqueté avec un texte contenant un numéro d'ordre de création.
  2. Ensuite, un clic sur l'un de ces boutons doit le faire disparaître.
  3. Enfin, un troisième type de bouton, "Reset", permet lorsqu'il subit un clic de faire disparaître tous les boutons crées, ne laissant que les deux boutons initiaux "New" et "Reset".

Faire maintenant en sorte que lorsque le bouton "Reset" a été utilisé, le bouton "New" crée des boutons numérotés à partir de 1 (réinitialisation du compteur).
Faire en sorte que si l'on clique sur un des boutons créés, celui-ci soit le seul à disparaître.


Rémi Forax 2002 Université de Marne la Vallée