pas de problème de compil mais ne marche pas!
Citation:
Bonjour,
j'ai un petit problème:
cette calculatrice ne présente aucun problème a la compil mais ne fonctionne pas
j'ai suivi un tutoriel pour la construire , j'ai vérifié les listeners ,en principe c'est bon mais je ne suis pas un cador..
l'erreur :les boutons ne répondent plus ou donnent des resultats bizarres à la deuxième urtilisation
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.*;
public class Calculatrice {
JButton bouton0 = new JButton("0");
JButton bouton1 = new JButton("1");
JButton bouton2 = new JButton("2");
JButton bouton3 = new JButton("3");
JButton bouton4 = new JButton("4");
JButton bouton5 = new JButton("5");
JButton bouton6 = new JButton("6");
JButton bouton7 = new JButton("7");
JButton bouton8 = new JButton("8");
JButton bouton9 = new JButton("9");
JButton boutonVirgule = new JButton(",");
JButton boutonEgale = new JButton("=");
JButton boutonPlus = new JButton("+");
JButton boutonMoins = new JButton("-");
JButton boutonMultiplier = new JButton("*");
JButton boutonDiviser = new JButton("/");
JButton boutonClean = new JButton("C");
JPanel contenuFenetre = new JPanel();
JTextField champAffichage = new JTextField(30);
Calculatrice() {
BorderLayout disposition = new BorderLayout();
contenuFenetre.setLayout(disposition);
contenuFenetre.add("North", champAffichage);
JPanel panneauChiffres = new JPanel();
GridLayout dispositionChiffres = new GridLayout(4, 3);
panneauChiffres.setLayout(dispositionChiffres);
panneauChiffres.add(bouton1);
panneauChiffres.add(bouton2);
panneauChiffres.add(bouton3);
panneauChiffres.add(bouton4);
panneauChiffres.add(bouton5);
panneauChiffres.add(bouton6);
panneauChiffres.add(bouton7);
panneauChiffres.add(bouton8);
panneauChiffres.add(bouton9);
panneauChiffres.add(bouton0);
panneauChiffres.add(boutonVirgule);
panneauChiffres.add(boutonEgale);
contenuFenetre.add("Center", panneauChiffres);
JPanel panneauOperations = new JPanel();
GridLayout dispositionOperations = new GridLayout(5, 1);
panneauOperations.setLayout(dispositionOperations);
panneauOperations.add(boutonPlus);
panneauOperations.add(boutonMoins);
panneauOperations.add(boutonMultiplier);
panneauOperations.add(boutonDiviser);
panneauOperations.add(boutonClean);
contenuFenetre.add("East", panneauOperations);
JFrame frame = new JFrame("Calculatrice");
frame.setContentPane(contenuFenetre);
frame.pack();
frame.setVisible(true);
monMoteurCalcul monmoteurCalcul = new monMoteurCalcul(this);
bouton0.addActionListener(monmoteurCalcul);
bouton1.addActionListener(monmoteurCalcul);
bouton2.addActionListener(monmoteurCalcul);
bouton3.addActionListener(monmoteurCalcul);
bouton4.addActionListener(monmoteurCalcul);
bouton5.addActionListener(monmoteurCalcul);
bouton6.addActionListener(monmoteurCalcul);
bouton7.addActionListener(monmoteurCalcul);
bouton8.addActionListener(monmoteurCalcul);
bouton9.addActionListener(monmoteurCalcul);
boutonVirgule.addActionListener(monmoteurCalcul);
boutonEgale.addActionListener(monmoteurCalcul);
boutonPlus.addActionListener(monmoteurCalcul);
boutonMoins.addActionListener(monmoteurCalcul);
boutonMultiplier.addActionListener(monmoteurCalcul);
boutonDiviser.addActionListener(monmoteurCalcul);
boutonClean.addActionListener(monmoteurCalcul);
}
public static void main(String[] args) {
new Calculatrice();
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;
import java.text.ParsePosition;
import javax.swing.JButton;
public class monMoteurCalcul implements ActionListener {
Calculatrice parent;
char actionSelectionnee = ' ';
double resultatCourant = 0;
NumberFormat formatNombres = NumberFormat.getInstance();
monMoteurCalcul(Calculatrice parent) {
this.parent = parent;
}
public void actionPerformed(ActionEvent evenement) {
JButton boutonClique = (JButton) evenement.getSource();
String textechampAffichage = parent.champAffichage.getText();
double valeurAffichee = 0;
if (!"".equals(textechampAffichage)) {
valeurAffichee = formatNombres.parse(textechampAffichage,
new ParsePosition(0)).doubleValue();
}
Object sourceEvenement = evenement.getSource();
if (sourceEvenement == parent.boutonPlus) {
actionSelectionnee = '+';
resultatCourant = valeurAffichee;
parent.champAffichage.setText("");
} else if (sourceEvenement == parent.boutonMoins) {
actionSelectionnee = '-';
resultatCourant = valeurAffichee;
parent.champAffichage.setText("");
}
else if (sourceEvenement == parent.boutonMultiplier) {
actionSelectionnee = '*';
resultatCourant = valeurAffichee;
parent.champAffichage.setText("");
} else if (sourceEvenement == parent.boutonDiviser) {
actionSelectionnee = '/';
resultatCourant = valeurAffichee;
parent.champAffichage.setText("");
}
else if (sourceEvenement == parent.boutonEgale) {
if (actionSelectionnee == '+') {
resultatCourant += valeurAffichee;
parent.champAffichage.setText(formatNombres
.format(resultatCourant));
} else if (actionSelectionnee == '-') {
resultatCourant -= valeurAffichee;
parent.champAffichage.setText(formatNombres
.format(resultatCourant));
}
} else if (actionSelectionnee == '*') {
resultatCourant *= valeurAffichee;
parent.champAffichage
.setText(formatNombres.format(resultatCourant));
} else if (actionSelectionnee == '/') {
resultatCourant /= valeurAffichee;
parent.champAffichage
.setText(formatNombres.format(resultatCourant));
}
else {
String libelleBoutonClique = boutonClique.getText();
parent.champAffichage.setText(textechampAffichage
+ libelleBoutonClique);
}
if (sourceEvenement == parent.boutonClean) {
actionSelectionnee = ' ';
resultatCourant = valeurAffichee;
parent.champAffichage.setText(" ");
}
}
} |