Travaux Pratiques Interfaces Graphiques
Master 1
TP4, gestion des
événements
But du TP
L'objectif est de réaliser un mini logiciel de dessin afin
d'illustrer la gestion d'événements.
La première partie consiste à construire un composant
permettant de créer et visualiser des couleurs selon le
modèle RGB.
La deuxième partie consiste à construire un composant
Ardoise sur lequel on peut dessiner des courbes, en utilisant le
curseur de la souris comme pinceau. On utilisera le composant de
sélection de couleur, défini dans la première
partie, pour modifier les couleurs du fond et du pinceau du composant
Ardoise.
Visualisation des couleurs
Ecrire une classe CouleurRGB permettant de
créer et visualiser des couleurs selon le modèle RGB
(Red, Green, Blue). Une couleur dans le modèle RGB est
définie par la composition de trois entiers compris entre 0 et
255 , représentant respectivement les intensités
des couleurs rouge, vert et bleu.
Le composant graphique CouleurRGB sera défini comme un JPanel
afin d'être intégré à d'autres composants
graphiques. Il est formé de trois barres de défilement
faisant varier l'intensité des trois couleurs de base, rouge,
vert et bleu. Les valeurs des couleurs sont affichées dans des
champs de saisie texte. La modification de la valeur d'intensité
dans un de ces champs ajustera la position de la barre de
défilement correspondante. A tout moment, la couleur
spécifiée est visualisée sur un panneau de test.
Quelques indications pour la construction de la classe CouleurRGB.
1) CouleurRGB est un JPanel, contenant trois barres de
défilement JScrollBar et trois champs de saisie texte
JTextField. Les barres de défilements sont graduées de 0
à 256, initialisées à 0 et admettent un pas d'une
unité.
2) On peut choisir une stratégie GridLayout pour les panneaux
composés de JScrollBar et JTextField, ainsi qu'une
stratégie BorderLayout pour l'agencement du panneau
général CouleurRGB.
3) Le changement de la valeur de l'intensité d'une des trois
couleurs se répercute sur la position de la barre de
défilement, sur la valeur dans le champ texte ainsi que sur la
couleur du panneau test.
3.1) On pourra pour cela, déclarer trois attributs r, v, b
entiers de la classe CouleurRGB, et écrire des méthodes
mAjRouge (int r), mAjVert(int v), mAjBleu(int b) mettant à jour
l'état de tous les composants en fonction de la valeur de la
couleur.
3.2) Définir des auditeurs CouleurListener et CouleurNumListener
aux composants JScrollBar et JTextField, mettant à jour les
valeurs des couleurs courantes, en fonction des déplacements des
curseurs des barres de défilement et des saisies des champs
texte.
Un micro dessinateur
Ecrire une application Ardoise.java affichant une fenêtre
contenant un panneau de fond blanc sur lequel le déplacement du
curseur de la souris provoque un tracé de points lorque un
bouton de la souris est pressé. Un mouvement continu de la
souris permet de tracer une courbe continue. Les coordonnées du
curseur de la souris sont, à tout moment, affichés dans
une barre d'état. La fenêtre principale contient un menu
dont les entrées permettent d'effacer l'ardoise et de quitter
l'application.
[Pour ceux qui ont fini]
Intégrer deux panneaux CouleurRGB à l'application
Ardoise.java
permettant respectivement de modifier la couleur du fond de l'ardoise
et du tracé
de la souris, en utilisant les barres de défilement.
Quelques indications pour la construction de la classe Ardoise.java :
1) Ecrire une classe FenetreArdoise qui définit une
fenêtre JFrame contenant le panneau de dessin JPanel, la barre de
position du curseur JLabel ainsi que les panneaux CouleurRGB. On pourra
choisir une stratégie de position BorderLayout pour l'agencement
de ces composants dans la fenêtre.
2) La barre de menu est initialisée en invoquant une
méthode creerMenu(), réalisant la construction de la
barre de menu. Pour la gestion des évènements
associés aux entrées du menu, utiliser des classes
incluses anonymes.
2) Ecrire deux classes anonymes CoordonneesListener et TraceListener
définissant les auditeurs permettant respectivement de
réaliser le tracé de points et de mettre à jour la
barre d'états. On pourra utiliser les adapters, comme classe
d'implémentation des listeners choisis.