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 : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
et le moteur..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(" "); } } }
Partager