Vous êtes sur la page 1sur 3

Exemple 04 : Interface graphique avec Swing Java offre plusieurs bibliothques (standard ou non-standard) pour la conception et la ralisation des

interfaces graphiques et conviviale, permettant aux utilisateurs d'interagir avec l'application d'une manire simple et efficace. Tout de mme, il faut faire attention ne pas mlanger le code associer aux interfaces graphiques (fentres, bote de dialogue, boutons, zones de textes, icnes, etc.) aux codes associer la logique mtiers (le domaine d'application). De telle sorte de garder le code source bien structur. N.B. : Pour le T.P . raliser, il est vident qu'une reprsentation graphique de la circulation des vhicules sera mieux place qu'une reprsentation console vu la nature du problme rsoudre. Le premier programme : Changer la couleur de la fentre Dans ce premier programme, on va voir comment crer une interface graphique constitue d'une fentre contenu trois boutons : Rouge, Blanc et Vert. Le clique sur un bouton sera l'effet de changer la couleur de la fen tre. Il faut toujours garder l'esprit de sparer la logique mtier de l'interface graphique. Ce programme est constitu e de deux classe : MainExample07 (contenant uniquement la mthode main()) et la classe : MyFrame (contenant l'implmentation ncessaire pour la cration de l'interface et le traitement des vnements associs aux trois boutons). L'interface est reprsente par la figure suivante :

MyFrame.java :
public class MyFrame extends JFrame{ private static final long serialVersionUID = 1L; private static JFrame instance = null; // (singleton) private JButton private JButton private JButton bRouge; bBlanc; bVert;

/** * onstructeur !ri"ate # inter$iction $%instancier en $e&ors $e la classe */ private MyFrame(){ super('Mon !remier e(am!le a"ec JFrame'); init ontents(); ) /** * *our initialiser le contenu $e la +enetre */ private void init ontents(){ this,bRouge = new JButton('Rouge'); this,bBlanc = new JButton('Blanc'); this,bVert = new JButton('Vert'); this,set-e+ault lose.!eration(JFrame,EXIT_ON_CLOSE); this,setResi/able(false); manageLyaout(); manage0"ents(); ) /** * *our la $is!osition $es com!osants gra!&i1ues (2 boutons) sur le +rame */ private void manageLyaout(){ this,setLayout(null); bRouge,setBoun$s(345 1445 1445 63); // setBoun$s ((5 y5 75 &) bBlanc,setBoun$s(6445 1445 1445 63); bVert,setBoun$s(2345 1445 1445 63); this,a$$(bRouge); this,a$$(bBlanc); this,a$$(bVert); this,set8i/e(3445 663); this,setLocationRelati"e9o(null); ) /** * *our !rogrammer les $i++erents e"enments */ private void manage0"ents(){ :ctionListener actionListener:llButtons = new :ctionListener() { public void action*er+orme$(:ction0"ent e"t) { &an$le:ction0"ents(e"t); ) );

bRouge,a$$:ctionListener(actionListener:llButtons); bBlanc,a$$:ctionListener(actionListener:llButtons); bVert,a$$:ctionListener(actionListener:llButtons); ) /** * le traitement $e l%e"enement :ction0"ent;br/< * @param e"t # l%e"enement ca!te !ar l%a!!lication */ private void &an$le:ction0"ents(:ction0"ent e"t){ olor color = this,get ontent*ane(),getBac=groun$(); if (e"t,get8ource(),e1uals(bRouge)){ color = olor,RED; ) else if (e"t,get8ource(),e1uals(bBlanc)){ color = olor,WHITE; ) else if (e"t,get8ource(),e1uals(bVert)){ color = olor,GREEN; ) ) this,get ontent*ane(),setBac=groun$(color);

/** * !ermet $e creer une instance uni1ue et l%a++ic&e a"ec setVisible(true) */ public static void create:n$8&o7(){ if (instance == null){ instance = new MyFrame(); ) instance,setVisible(true); ) )

MainExample07.java:
package main; import userinter+ace,MyFrame; public class Main0(am!le4>{ public static void main(8tring?@ args){ MyFrame,createAndShow(); ) )

Le deuxime programme : Rsolution de l'quation ax+b = 0 Veuillez analyser (lire attentivement et avec rflexion) le code sources (sparation entre le modle de la prsentation). Rcapitulatif L'objectif n'est pas uniquement de faire des interfaces graphiques (Mais, en plus, de bien structurer le code sources et mettre chaque chose la place qui lui convient) Voir aussi GroupLayout pour la gestion de disposition.

Vous aimerez peut-être aussi