aide

markove
aide

bonsoir tout le monde je me bloque dans la gestion des evenements dans une application de calculatrice voila mon code

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class calculatrice extends JFrame implements ActionListener{

public calculatrice(){
super();
setSize(300,400);


setLayout(new FlowLayout());
setLayout(new GridLayout(4,3,5,5));


Button b10=new Button("0");
add(b10);
b10.addActionListener(this);
Button b1=new Button("1");
add(b1);
b1.addActionListener(this);
Button b2= new Button("2");
add(b2);
Button b3=new Button("3");
add(b3);
b3.addActionListener(this);

Button b4=new Button("4");
add(b4);
b4.addActionListener(this);
Button b5=new Button("5");
add(b5);
b5.addActionListener(this);
Button b6=new Button("6");
add(b6);
b6.addActionListener(this);
Button b7=new Button("7");
add(b7);
b7.addActionListener(this);
Button b8=new Button("8");
add(b8);
b8.addActionListener(this);
Button b9=new Button("9");
add(b9);
b9.addActionListener(this);

Button b11=new Button("+");
add(b11);
b11.addActionListener(this);
Button b12=new Button("-");
add(b12);
b12.addActionListener(this);
Button b13=new Button("*");
add(b13);
b13.addActionListener(this);
Button b14=new Button("/");
add(b14);
b14.addActionListener(this);

JPanel f=new JPanel();
JPanel g=new JPanel();
add(g);
g.setSize(200,100);

g.setLayout(new FlowLayout());
TextField tf= new TextField();
g.add(tf);
show();

}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

if(e.getSource()=="1");
}

}

fredericmazue

Fort bien, mais quel est ton problème exactement ? Qu'est-ce qui te bloque ?

markove

Bonjour je voudrais continuer mon application par la gestion des événements afin de faire des opérations dans le zone TextField

fredericmazue

Quote:
afin de faire des opérations dans le zone TextField

Quelles opérations ? Tu es spécialiste en devinettes ou quoi ?

markove

par exemple si je clique sur 1 puis + puis 2 il va afficher 3
la même chose en multiplication
soustraction et division merci en avance

fredericmazue

je pense qu'il faut que tu définisses des étapes dans ton code. Ca doit être ça qui te manque

Au départ la saisie sur les touches est répercutée dans la zone texte.
Ensuite quand un opérateur (+-*/) est cliqué, tu dois stocker ce qui est dans la zone texte quelque part et aussi stocker l'opération. Et repasser en mode saisie jusqu'à ce que le bouton "=" soit cliqué (bouton à ajouter je crois).
Là tu fais l'opération entre ce qu'il y a dans la zone texte et la variable stockée avant, puis tu affiches le résultat dans la zone texte.

Voilà sans doute le moyen le plus simple de faire. Pour une calculatrice très rudimentaire. Pour des opérations plus compliquées c'est une autre histoire.
Ne pas oublier de traiter une clic prématuré sur la touche =

Bref tu vas programmer une machine à état :)