On désire maintenant pouvoir choisir entre deux couleurs pour les disques à tracer. Si on change le choix de couleurs, les disques déjà tracés conservent leur couleur d'origine mais les disques tracés à l'avenir auront la nouvelle couleur.
Pour cela, on construit une nouvelle classe nommée Dessin qui étend la classe JFrame. Dans la fonction main, on instanciera la classe Dessin ; on écrira par exemple :
JFrame fenetre = new Dessin();On ne à précisera pas le containeur de la fenêtre.
Une instance de la classe Dessin possèdera d'une part un bouton qui permettra de changer de couleurs et d'autre part une instance de la classe PanneauDessin. Un attribut de type java.awt.Color contiendra la couleur retenue pour les prochains disques à tracer. Cet attribut pourra se trouver dans la classe PanneauDessin ou dans la classe Dessin.
Remarque : Pour que le bouton n'occupe pas toute la largeur, et en vue des exercices suivants, on pourra mettre le bouton dans un panneau (nouvelle instance de JPanel prévu à cet effet) avant d'ajouter ce panneau au nord de Dessin plutôt que d'ajouter directement le bouton au nord
Remarque
: On pourra préférer que chaque clique sur le bouton conduise à choisir aléatoirement une nouvelle couleur. Ou bien que, si on a cliqué sur le bouton, une nouvelle couleur soit choisie aléatoirement chaque fois qu'on clique pour avoir une nouvelle forme. Pour cela, on utilisera un générateur aléatoire déclaré par :
java.util.Random alea;et construit avec l'instruction :
alea = new java.util.Random(System.currentTimeMillis());Une couleur aléatoire pourra alors être obenue par l'instruction :
couleur = new Color(Math.abs(alea.nextInt()) % 256, Math.abs(alea.nextInt()) % 256, Math.abs(alea.nextInt()) % 256);où couleur est un objet de la classe Color.