Interfaces graphiques |
Calculatrice
Le but de ce TP et du suivant est de programmer une calculatrice simple (offrant seulement les 4 opérations de base).
Nous allons écrire la calculatrice en quatre étapes (vérifiez bien que chaque étape fonctionne avant de passer à la suivante !) : tout d'abord l'affichage des boutons à l'écran, puis l'ajout d'un écouteur à chaque bouton, puis dans le prochain TP les clics sur les chiffres qui permettent de saisir un nombre correctement, et enfin les clics sur les opérateurs.
Remarque : bien que ce programme soit graphique, vous pouvez utiliser la méthode System.out.println pour afficher dans le terminal des indications sur le déroulement du programme : cela sera utile par exemple pour vérifier que les nombres que vous saisissez avec les touches de la calculatrice sont stockés comme il faut dans les variables...
1. Les
touches (attributs et constructeur de la
classe
Calculatrice)
La calculatrice contient un affichage, et
des
boutons.
Ecrire une classe Calculatrice étendant la classe Panel afin d'obtenir l'affichage ci-contre.
Vous pouvez utiliser un tableau de boutons
pour
stocker les
touches de chiffres, cela vous permet d'initialiser rapidement (avec
une boucle)
chacun de ces boutons.
Tous les boutons seront
placés dans un Panel
nommé touches,
afin de pouvoir obtenir la disposition
que l'on souhaite (GridLayout
de 4 sur 4).
Il faut également un champ de texte pour l'affichage des nombres, nommé affichage.
Pour la disposition du champ de texte et
du panel
touches
dans la fenêtre principale, vous utiliserez un BorderLayout
avec le champ de texte au nord et les touches au centre.
Ecrire la méthode main dans laquelle vous créerez une fenêtre ; dans cette fenêtre vous placerez un objet de type Calculatrice.
Remarque
: voici le code qui permet
qu'une fenêtre
se
ferme
lorsqu'on appuie sur la petite croix dans la barre de titre. Ce code
ajoute
un écouteur de fenêtre à l'objet f,
cet
écouteur
est de type WindowAdapter
et indique que lorsqu'un message de
fermeture
de fenêtre arrive (c'est-à-dire lorsqu'on clique
sur la
croix)
il faut faire disparaître la fenêtre et
arrêter le
programme.
Frame f;
f.addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent e) { // lorsqu'on ferme la fenêtre
e.getWindow().dispose(); // on fait disparaître la fenêtre
System.exit(0); // on arrête le programme
}
});
Maintenant, que doit-il se passer
lorsqu'on
appuie
sur l'un des boutons ? Cela dépend si c'est l'un des
5 opérateurs, ou alors un chiffre ou le point
décimal...
Ecrire la fonction actionPerformed
qui
suivant le cas fera appel à l'une des deux fonctions que
nous
verrons dans le prochain TP : traiterSaisieNombre()
ou traiterClicSurOperateur().
Pour le moment, contentez-vous dans
chacune des
deux
méthodes de traitement d'afficher dans le terminal le nom du
bouton
sur lequel on a cliqué.