samedi 6 juin 2009

Formes & couleurs

Voilà, j'ai terminé le programme! J'ai passé la matinée à le peaufiner!

Voici à quoi ça ressemble:



Maintenant, je vais changer la couleur de fond (en vert disons). Je peux le faire de 3 manières différentes. Je peux:
  • Peser sur le bouton vert en haut de l'écran;
  • Aller dans Couleur -> Vert;
  • Cliquer sur le bouton droit de ma souris et appuyer sur "Vert".


Ensuite, je trace un rectangle et un ovale. Pour ce faire, je vais dans "Formes", et je coche "Rectangle" et "Ovale".

Ça ressemble ensuite à ça:



Si je veux changer la largeur ou la hauteur des figures, je vais dans "Dimensions" et je clique sur, par exemple, "Largeur", qui fait apparaître la chose suivante:



Dans "Fichier", si je clique sur "À propos...", voici ce qui apparaît:



Finalement, pour quitter, il y a trois manières: Fichier -> Quitter, cliquer sur le "X" (d'uh) ou encore peser sur CTRL+Q. Ça donne ça:




Je vous rappelle que ceci était dans le but de reproduire (bah, améliorer) l'application présentée dans mon Livre. Voici quelques améliorations/changements que j'ai faits:

  • J'ai fait en sorte que le menu qui apparaissait quand on cliquait sur le bouton de droit soit toujours fonctionnel (il y avait un bogue dans le programme du livre);
  • Quand on ferme la fenêtre, l'application se ferme également (ce n'est pas le cas de l'application du livre; il faut tuer le processus d'une autre manière);
  • J'ai rajouté le raccourci clavier pour quitter (CTRL+Q);
  • J'ai rajouté le menu "Fichier", qui comprend "À propos..." ainsi que "Quitter". Les fenêtres de message "À propos..." ainsi que "Fermeture de l'application" sont de mon moi-même;
  • Il y a maintenant un gestionnaire d'exception. Dans le programme original, quand on voulait changer la largeur ou la hauteur et qu'on entrait quelque chose qui ne peut pas être converti en nombre, il y avait simplement une erreur qui n'était pas traitée (et qui apparaissait en console). Mon gestionnaire est tout simple: il essaie de convertir en nombre (et d'assigner cette valeur aux propriétés des figures), et s'il ne peut pas, il ne fait rien.


Le gestionnaire d'erreur comprend ceci (très joli):

Ajout d'une clause throws à l'en-tête de la méthode concernée:

public void actionPerformed(ActionEvent ev)
throws NumberFormatException {


Ainsi que le gestionnaire en soit (try { ... } suivi de catch { ... }):

try { pan.setLargeur(Integer.parseInt(rep)); }
catch(NumberFormatException e) {}



Évidemment, le programme a l'air très simple. Il y a des choses quand même compliquées. Par exemple, vous remarquerez (voir les captures d'écran) que lorsqu'une couleur est en arrière-plan, les boutons qui lui sont associés sont désactivés (ici, le bouton vert est désactivé). Cela est vrai pour les trois endroits où les couleurs se trouvent (menu du bouton droit, menu Couleur, barre d'outils). Quand on laisse sa souris un certain temps sur ces boutons, une bulle informative apparaît (et qui dit essentiellement "Fond: (couleur ici)").


Bref, je ne vous achalerai pas plus longtemps... ceux qui sont intéressés à voir le code source, il est ici. Si vous voulez le compiler par vous-même, toutes les classes sont dedans (i.e. vous n'avez besoin de rien de plus). Par contre, vous n'aurez pas les images (donc, les icônes n'auront pas de couleurs).

1 commentaire:

Anonyme a dit...

Excellent Philippe