TS - sp´e ISN
Les fenˆ etres
TP 6Dans cette fiche d’exercices, il est demand´e de faire l’exercice 1 puis d’en choisir un des trois autres.
Quelques rappels sur les boˆıtes de dialogues sont disponibles `a la fin de la fiche.
1 Les exercices
Exercice 1.
Reprendre le fichierPalindrome.javaenvoy´e dans vos espaces et par mail et le modifier en utilisant : – une boˆıte d’entr´ee pour la saisie du texte ;
– une boˆıte de message pour la r´eponse.
Exercice 2.
Cr´eer un jeu o`u l’ordinateur choisit un nombre entre 1 et 100 et l’utilisateur doit le chercher en proposant des valeurs. `A chaque valeur propos´ee (dans une boˆıte de dialogue), l’ordinateur r´epond
plus grand,plus petitou gagn´e !(dans une boˆıte de dialogue. . .).
Exercice 3.
Cr´eer un jeu qui demande de penser `a un nombre `a l’utilisateur puis cherche ce nombre en proposant des valeurs et en demandant si le nombre cherch´e est plus grand, plus petit ou ´egal. (Ici c’est l’ordinateur quijoue; l’utilisateur r´epond `a ses questions en cliquant sur les boutons d’une boˆıte de dialogue).
Exercice 4.
Cr´eer un programme qui permet de tester les connaissances d’un candidat sous la forme d’un qcm.
Cahier des charges :
– pour chaque question on propose trois r´eponse dont une seule est juste ;
– les questions, propositions et r´eponses seront stock´es (pour le moment1) dans un tableau ; – les r´eponses doivent se faire en cliquant sur un bouton ;
– un message doit afficher `a la fin le score du candidat (avec ou sans p´enalisation des mauvaises r´eponses).
2 Quelques rappels
Penser `a indiquer : import javax.swing.JOptionPane; dans le pr´eambule (mais Eclipse vous le rap- pelle. . .)
2.1 Boˆıte de confirmation
Une boˆıte de confirmation demande un clic `a l’utilisateur (oui/non, OK/Annuler/Ignorer, . . .).
La r´eponse est un int. On la d´eclare ainsi :
int r e p o n s e;
r e p o n s e = J O p t i o n P a n e.s h o w C o n f i r m D i a l o g(null,// p o s i t i o n
” Vous a v e z t o u t c o m p r i s ? ”, // la q u e s t i o n
” Q u e s t i o n ”,// i n t i t u l ´e de la b o ^ı t e
J O p t i o n P a n e.Y E S _ N O _ O P T I O N,// t y p e de b o u t o n s J O p t i o n P a n e.I N F O R M A T I O N _ M E S S A G E) ;// i c ^o n e
En sortie, reponsevaut 0 si on clique sur oui et 1 si on clique sur non.
1. Un projet int´eressant serait de cr´eer un logiciel qui permet au professeur de construire un ou plusieurs qcm et un autre qui permet `a l’´el`eve de le passer.
E.Gillon - T. Rey´ Page 1 18 novembre 2012
TS - sp´e ISN
Les fenˆ etres
TP 62.2 Boˆıte d’entr´ee de texte
Une boˆıte d’entr´ee permet `a l’utilisateur du programme de saisir du texte (`a vous de le convertir si vous souhaitez un autre format de donn´ees. . .) :
S t r i n g r e p o n s e;
r e p o n s e = J O p t i o n P a n e.s h o w I n p u t D i a l o g(null,
” M e n t e u r ! R´esumez v o s c o n n a i s s a n c e s i c i : ”,
” S a i s i r du t e x t e ”,
J O p t i o n P a n e.Q U E S T I O N _ M E S S A G E) ;
La variablereponse contient :
– le texte saisi si on a cliqu´e sur OK ; – null si on a cliqu´e sur Annuler.
2.3 Boˆıte de message
Parfois, on souhaite juste afficher une r´eponse ou une information :
J O p t i o n P a n e.s h o w M e s s a g e D i a l o g(null,
” I l va f a l l o i r t r a v a i l l e r p l u s ”,
” C o n s e i l i m p o r t a n t ! ”,
J O p t i o n P a n e.W A R N I N G _ M E S S A G E) ;
2.4 Personnalisations
Dans Eclipse, chaque fois que vous saisissez JOptionPane. une info-bulle vous propose plusieurs suggestions, `a vous d’essayer d’autres types dePane(ou panneaux) et de voir ce que cela donne. . . Un exemple de fenˆetre avec quatre boutons personnalis´es (pour d’autres exemples, internet est votre ami) :
J O p t i o n P a n e d = new J O p t i o n P a n e() ; // les t e x t e s f i g u r a n t sur les b o u t o n s
S t r i n g l e s T e x t e s[ ] = { ” b o n j o u r ”, ” au r e v o i r ”,
” b o n n e n u i t ”, ” b o n n e a n n´e e ”};
int r e t o u r = // i n d i c e du b o u t o n qui a ´et´e c l i q u ´e ou C L O S E D _ O P T I O N d.s h o w O p t i o n D i a l o g(g e t F r a m e() , ” l e m e s s a g e ”, ” l e t i t r e ”,
J O p t i o n P a n e.Y E S _ N O _ O P T I O N, J O p t i o n P a n e.I N F O R M A T I O N _ M E S S A G E,
null, // pas d i c o n e
l e s T e x t e s, // les t e x t e s de b o u t o n s l e s T e x t e s[ 0 ] ) ; // le b o u t o n par d ´e f a u t if( r e t o u r!=J O p t i o n P a n e.C L O S E D _ O P T I O N) ;// un b o u t o n c l i q u ´e
e l s e ; // pas de b o u t o n c l i q u ´e
E.Gillon - T. Rey´ Page 2 18 novembre 2012
TS - sp´e ISN
Les fenˆ etres
TP 6Corrig´es des exercices
E.Gillon - T. Rey´ Page 3 18 novembre 2012