PYL: c oct 05
(Lagrée P.-Y.),
LMM-Univ PARIS 6, B 162,
4 place Jussieu, 75252 PARIS
pyl(a)ccr.jussieu.fr
http://www.lmm.jussieu.fr/~lagree
Exemple de gui [Graphic User Interface] pour lancé de dé
Un programme minimal en java. On crée un bouton qui "lance" un
dé. On affiche le résultat.
le lancé de dé lui même est fait par utilisation de la fonction
"random" de la librairie mathématique (Math.random())). Le nombre obtenu
est compris entre 0 et 0.99999, on le multiplie par 6, et on rajoute
1. On a un nombre entre 1 et 6.99999999, ensuite on prend la partie
entière (par exemple la partie entière de 1.232 est 1; la partie
entière de 5.323455 est 5).
La transcription (transtypage) est faite par "int". Le résultat est un
entier:
int de=(int)(1+6*Math.random());
Le lancer de dé est dans un sous programme:
public void actionPerformed(ActionEvent e) { //attente action
Object src = e.getSource(); //action
if (src == de1) { //identification de l'action
int de=(int)(1+6*Math.random()); //resultat du de mis dans res1
res1.setText("" + de); //affichage
return; }
le résultat du dé est mis dans "res1" qui est un champ de texte qui a
été initialisé à "Rien".
Quand une action est produite, car les actions sont attendues par
implements ActionListener
on récupère ce qu'est cette
action par Object src = e.getSource();
puis on fait un test
pour savoir s'il s'agit de la bonne action
if (src == de1)
En effet, l'action attendue est le clic sur
le bouton "de1", mais il y a continuellement des actions (déplacement de
souris, clics ailleurs etc.).
Les initialisation du bouton action et du champ de résultat:
public class deguiguy extends Applet implements ActionListener {
Panel controlPanel; //definition du panneau
JButton de1 = new JButton("lance!"); //definition du Bouton
JTextField res1= new JTextField ("Rien"); //definition du champ de resultat du lance
public void init() { //initialisation
controlPanel = new Panel(); //creation du panneau
add("Center", controlPanel); //disposition
controlPanel.add(de1); //ajout du bouton
de1.addActionListener(this); //surveiller le bouton
controlPanel.add(res1); //ajout du resultat
}
On ajoute aussi un "principal" qui ne sert pas si on lance l'appliquette
par le butineur.
public static void main(String args[]) { //pour execution sans butineur
JFrame f = new JFrame("jeu de dé par PYL");//
deguiguy guide = new deguiguy();
guide.init();
f.getContentPane().add(guide);
f.setSize(300,100);
f.show();
}
La source
est à sauver dans le fichier
deguiguy.java, on compile avec la ligne de commande par "javac deguiguy.java ;java deguiguy "