Vous êtes sur la page 1sur 4

Activit dapprentissage

Module

CRJJ-04

Techniques avances
objet en Java

Prcision

Raliser des interfaces avec AWT

Technologie

Java J2EE

Activit

Gestion d'une interface fentre, avec interaction


d'un composant sur un autre

Phase
dapprentissage

Entranement

Prcisions sur les


objectifs viss par
lactivit

de

programmation

Cette activit dapprentissage doit vous permettre de :

Centraliser une gestion dvnements


Grer les interactions entre les composants

DESCRIPTION DE LACTIVITE

Nous dsirons raliser une bote de dialogue qui change


de couleur de fond. Nous nous limiterons quatre
couleurs : rouge, vert, bleu et jaune. Pour changer la
couleur de fond nous pourrons

Cliquer un bouton de la couleur du fond.


Appuyer sur un radio bouton.
Saisir la couleur de fond
Cliquer dans une liste droulante.

Bien entendu, quelque soit la manire de changer la


couleur du fond, les autres moyens sont mis jour.
Soit l'interface suivante:

OFPPT @

Document

Millsime

A-A-007

mai 13

Page
1-4

Que l'on appuie sur le bouton jaune, que l'on appuie sur
le bouton radio jaune, que l'on saisisse jaune (en
majuscule ou en minuscule), ou que l'on choisisse jaune
dans la liste droulante, on obtient le rsultat suivant:

Il est important ici de dfinir une stratgie globale, qui


permette de rsoudre le plus simplement possible ce
problme.
Ici nous vous proposons une stratgie de conception du
problme, dans la logique de raisonnement des exercices
prcdents. Dans le chapitre 3 nous prendrons une autre
philosophie de rsolution de ce problme.
Dans ce problme nous nous poserons cinq questions :
1) Comment construire cette interface ?
2) Quel outil pour remettre jour la fentre (ou

OFPPT @

Document

Millsime

A-A-007

mai 13

Page
2-4

repeindre) ?
3) Qui coute les diffrents contrles ?
4) Combien dcouteurs pour grer ces contrles ?
5) Voit-on des outils communs ?
Voici les rponses que je vous conseille :
1) Nous allons grer cette interface avec un certain nombre
de panels, pour pouvoir disposer les composants comme
le dsire le client, et pour regrouper dans des panels
diffrents les diffrents contrles. Ainsi chaque panel
traite sa logique.

P
n
e
l
B
o
u
t
o
n

P
a
e
l
c
Panel
checkboxh
e
c
k
b
o
x

Panel
divers
Panel
saisie

n
n
n
Panel
Panel
affichage e
n
bouton
e
n
Panel
e
choice
n
e
n
e
n
2) Pour peindre nous allons utiliser la mthode e
P

setBackground. Ici setBackground ne fera pas que peindre


la couleur de fond, elle demandera aussi aux composants
P
imbriqus de peindre leur couleur de fond, et fera
les
a
mises jour ncessaires (comme le focus sur le
n bon
bouton (requestFocus()), slectionner le bon Checkbox,

e
). La Fentre principale, et chaque Panel devral donc faire
un polymorphisme de la mthode setBackground.
S

OFPPT

a
3) Celui qui coute doit connatre tous les panels,i afin de leur
s tous les
demander de peindre. Or, un seul objet connat
i
autres : cest la fentre. Ici ce sera donc la fentre
qui
e
coutera tous les contrles.
n
e
4) Dun point de vue fonctionnel, le travail est le mme
que
l
lon active nimporte quelle sorte de contrle. IlS est donc
logique davoir un seul couteur. Cet couteur adevra
implmenter deux types diffrents dinterface, i du fait de
la multiplicit des types de contrle.
s
i
e
Document
Millsime
Page
@
A-A-007
mai 13
3-4

5) Nous constatons que lorsque nous peignons certains


panels, nous avons besoin certes de la couleur, mais aussi
de la chane de caractres correspondant cette couleur.
Il serait bon davoir une mthode qui convertisse une
couleur en chane de caractres. Quand nous actionnons
un contrle, nous rcuprons dans tous les cas une chane
de caractres ( il faudra se dbrouiller pour cela ) qui
reprsente le nom de la couleur. Il nous faut donc une
mthode qui convertisse cette chane de caractres en
couleur. Je vous propose de crer deux outils, dfinis dans
une bote outils, ayant les interfaces suivantes :
String colorToString (Color c) ;
Color stringToColor (String s) ;

OFPPT @

Document

Millsime

A-A-007

mai 13

Page
4-4