L'applet PlusMoins

Observons

Commençons par observer l'applet qu'il s'agit de recréer.

Analyse

But du programme

Le programme simule le jeu du nombre mystérieux. L'ordinateur choisit un nombre au hasard qui doit être deviné par le joueur. Celui-ci dispose de 10 essais; à chaque essai l'ordinateur indique si le nombre proposé est trop petit ou trop grand.

Un bouton "Nouveau jeu" permet de recommencer une nouvelle partie à tout moment.

Les composants

Les composants utilisés sont :

Les variables

Les composants qui sont appelés à être utilisés dans plusieurs méthodes doivent être déclarés comme champs de l'applet. Ici c'est le cas pour la ligne de saisie, la zone texte donnant le numéro de l'essai et la zone texte donnant la réponse.

Il faudra aussi prévoir d'autres champs pour contenir le nombre à trouver, le nombre d'essais et un drapeau indiquant si le jeu est terminé.

Evènements

Il faut réagir aux évènements provoqués par les deux boutons en leur fournissant un ou des écouteurs.

Le bouton "Vérifier" déclenchera la lecture du nombre proposé puis sa comparaison avec le nombre à trouver. Enfin, selon les cas une réaction appropriée sera choisie.

Le bouton "Nouveau jeu" devra réinitialiser le nombre d'essai, le nombre à trouver, le drapeau ainsi que les différents Labels. Ces opérations qui sont exécutées aussi au démarrage de l'applet pourront être inscrites dans la méthode start.

On pourra aussi associer un écouteur de type ActionListener à la ligne de saisie de la réponse pour gérer l'appui sur la touche Entrée et l'associer à une vérification.

Disposition des composants

La méthode init de l'applet devra construire l'interface graphique en utilisant des gestionnaires de composants. Ceux-ci se répartissent de la manière suivante :

Position des composants

Gestionnaire de positionnement pour l'applet

On distingue deux zones (entourées de bleu) disposées verticalement :

On utilisera donc un gestionnaire de type BorderLayout avec la zone du titre au nord et la zone de travail au centre.

Positionnement dans la zone de travail

La zone de travail peut être partagée en deux parties (entourées de rouge) équivalentes par la taille : à gauche le TextArea contenant la règle du jeu et à droite la zone de dialogue qui contient les autres composants regroupés dans un nouveau Panel. Un gestionnaire de positionnement de type GridLayout avec 1 ligne et 2 colonnes permet d'obtenir ce résultat.

Positionnement dans la zone de dialogue

La zone de dialogue peut être divisée en 4 zones (entourées de vert) de taille équivalente disposées verticalement. On utilisera donc un gestionnaire de positionnement de type GridLayout avec 4 lignes et 1 colonne. La première ligne contient deux composants (Label et TextField) qu'il faudra regrouper dans un Panel qui utilisera aussi un GridLayout avec cette fois 1 ligne et 2 colonnes.

Marges

La gestion des marges se fera avec la méthode getInsets pour le tour de l'applet et dans les constructeurs des gestionnaires de positionnement pour les espaces entre composants.

Les petits détails importants

Interprétation de la saisie

Le texte saisi par l'utilisateur doit être converti en nombre. Il est bon de faire cette conversion dans une structure try...catch... pour prendre en compte les saisies erronnées.

Amélioration de la saisie

Après chaque vérification, le texte saisi par l'utilisateur doit être sélectionné pour lui éviter de devoir l'effacer. De même on veillera à attribuer le focus à la ligne de saisie pour éviter un clic d'activation.

Empêcher certaines éditions

La zone contenant la règle du jeu devra être rendue non éditable; la zone de saisie aussi lorsque le jeu est terminé.



Retour au menu