Bonjour, je fais une calculette graphique en Java et je ne sais pas comment faire fonctionner le bouton effacer.
Voici mon code, merci de vos réponses :
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
******classe moteurcalcul*******
import java.awt.event.ActionListener;  
import java.awt.event.ActionEvent; 
import java.text.NumberFormat; 
import java.text.ParsePosition; 
 
import javax.swing.AbstractButton;
import javax.swing.JButton; 
public class moteurcalcul implements ActionListener { 
 
  calculatrice parent; // une référence à la Calculatrice
  char actionSélectionnée = ' ';  // +, -, /, ou *
 
  double résultatCourant = 0;  
  NumberFormat formatNombres = NumberFormat.getInstance();  
// un objet capable de lire et présenter les nombres
 
  // Le constructeur stocke la référence à la fenêtre  
  // Calculatrice dans la variable membre parent
  moteurcalcul(calculatrice parent) { 
    this.parent = parent; 
  } 
 
  public void actionPerformed(ActionEvent événement) { 
 
    // Retrouve la source de l'action
    JButton boutonCliqué = (JButton) événement.getSource(); 
    String texteChampAffichage =  
         parent.champAffichage.getText(); 
    double valeurAffichée = 0; 
    // Retrouve le nombre présenté dans le champ texte  
    // s'il n'est pas vide
    if (!"".equals(texteChampAffichage)) { 
      valeurAffichée =  
        // analyse la chaîne de caractères
        formatNombres.parse( 
          texteChampAffichage,  
          new ParsePosition(0) /* ne sert pas */). 
          // puis donne sa valeur en tant que double
          doubleValue(); 
    } 
 
 
    Object sourceEvénement = événement.getSource(); 
    // Pour chaque bouton d'action, mémorise l'action 
    // sélectionnée, +, -, /, ou *, stocke la valeur courante 
    // dans la variable résultatCourant et vide le champ  
    // Affichage avant l'entrée du nombre suivant
 
    if (sourceEvénement == parent.boutonPlus) 
    { 
    	 actionSélectionnée = '+'; 
    	 résultatCourant = valeurAffichée; //stock valeur
    	// parent.champAffichage.setText(""); 
    }  
      else if (sourceEvénement == parent.boutonMoins) 
    	    { 
    	      actionSélectionnée = '-'; 
    	      résultatCourant = valeurAffichée; 
    	      //parent.champAffichage.setText(""); 
    	    }  
    	    else if (sourceEvénement == parent.boutonDiviser) 
    	    { 
    	         actionSélectionnée = '/'; 
    	         résultatCourant = valeurAffichée;  
    	         //parent.champAffichage.setText(""); 
    	    }  
    	          else if (sourceEvénement == parent.boutonMultiplier)
    	          { 
    	            actionSélectionnée = '*';  
    	            résultatCourant = valeurAffichée; 
    	           // parent.champAffichage.setText(""); 
    	          }  
    	                else if (sourceEvénement == parent.boutonEgale)
    	                { 
    	                      // Effectue les calculs en fonction de actionSélectionnée
    	                     // Modifie la valeur de la variable résultatCourant 
    	                    // et affiche le résultat 
    	                    if (actionSélectionnée == '+') 
    	                     { 
    	                      résultatCourant += valeurAffichée; 
    	                      // Convertit le résultat en le transformant en String 
    	                      // à l'aide de formatNombres 
    	                      parent.champAffichage.setText(  
    	                      formatNombres.format(résultatCourant)); 
    	                     }  
    	                    else if (actionSélectionnée == '-')
    	                        {  
    	                         résultatCourant -= valeurAffichée; 
    	                         parent.champAffichage.setText( 
    	                         formatNombres.format(résultatCourant)); 
                             	 }  
    	                    else if (actionSélectionnée == '/')
    	                    { 
    	                         résultatCourant /= valeurAffichée;  
    	                         parent.champAffichage.setText( 
    	                         formatNombres.format(résultatCourant)); 
    	                   }  
    	                   else if (actionSélectionnée == '*') 
    	                   { 
    	                        résultatCourant *= valeurAffichée;  
    	                        parent.champAffichage.setText( 
    	                        formatNombres.format(résultatCourant)); 
    	                   } 
    	                   else if (sourceEvénement == parent.boutonr) 
    	                   {	
 
 
 
    	                	  }
    	               }  
    	               else { 
    	                    // Pour tous les boutons numériques, ajoute le libellé 
                         	// du bouton au champ texte 
    	            	   //click sur 2 boutons pour n'en former qu'un
    	                     String libelléBoutonCliqué = boutonCliqué.getText(); 
                         	 parent.champAffichage.setText(texteChampAffichage + libelléBoutonCliqué); 
    	    } 
    	  } 
    	}
 
 
*********************************
 
 
********classe calculatrice******************
import javax.swing.*; 
 
import java.awt.GridLayout; 
import java.awt.BorderLayout; 
 
public class calculatrice { 
  // Déclare et instancie les composants de la fenêtre 
  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 boutonr = new JButton("effacer"); 
  JButton boutonVirgule = new JButton(","); 
  JButton boutonEgale = new JButton("="); 
  JButton boutonPlus = new JButton("+"); 
  JButton boutonMoins = new JButton("-");
  JButton boutonDiviser = new JButton("/"); 
  JButton boutonMultiplier = new JButton("*"); 
  JPanel contenuFenêtre = new JPanel(); 
  JTextField champAffichage = new JTextField(30); 
 
    // Constructeur 
  calculatrice() { 
    // Affecte le gestionnaire de disposition pour ce panneau
	  BorderLayout disposition = new BorderLayout();  
	  contenuFenêtre.setLayout(disposition); 
 
    // Ajoute le champ d'affichage en haut de la fenêtre
    contenuFenêtre.add("North", champAffichage); 
 
    // Crée le panneau avec le quadrillage qui contient
    // 12 boutons – les 10 boutons numériques et ceux 
    // représentant la virgule et le signe égale
 
    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); 
     panneauChiffres.add(boutonr); 
    // Ajoute le panneau des chiffres à la zone centrale  
    // de la fenêtre
    contenuFenêtre.add("Center", panneauChiffres); 
 
    // Crée le panneau avec le quadrillage qui contient 4
    // boutons d'opération – Plus, Moins, Diviser, Multiplier 
    JPanel panneauOpérations = new JPanel(); 
    GridLayout dispositionOpérations = new GridLayout(4, 1);  
    panneauOpérations.setLayout(dispositionOpérations);  
    panneauOpérations.add(boutonPlus); 
    panneauOpérations.add(boutonMoins); 
    panneauOpérations.add(boutonMultiplier); 
    panneauOpérations.add(boutonDiviser);
    // Ajoute le panneau des opérations à la zone est  
    // de la fenêtre
    contenuFenêtre.add("East", panneauOpérations); 
 
    // Crée le cadre et lui affecte son contenu 
    JFrame frame = new JFrame("ma primiere Calculatrice"); 
    frame.setContentPane(contenuFenêtre); 
 
    // Affecte à la fenêtre des dimensions suffisantes pour   
    // prendre en compte tous les contrôles
    frame.pack();  
 
    // Affiche la fenêtre
    frame.setVisible(true); 
 
    // Instancie le récepteur d'événements et l'enregistre
    // auprès de chaque bouton 
    moteurcalcul moteurCalcul = new moteurcalcul(this); 
 
    bouton0.addActionListener(moteurCalcul); 
    bouton1.addActionListener(moteurCalcul); 
    bouton2.addActionListener(moteurCalcul); 
    bouton3.addActionListener(moteurCalcul); 
    bouton4.addActionListener(moteurCalcul); 
    bouton5.addActionListener(moteurCalcul); 
    bouton6.addActionListener(moteurCalcul); 
    bouton7.addActionListener(moteurCalcul); 
    bouton8.addActionListener(moteurCalcul); 
    bouton9.addActionListener(moteurCalcul); 
    boutonr.addActionListener(moteurCalcul); 
    boutonVirgule.addActionListener(moteurCalcul);  
    boutonPlus.addActionListener(moteurCalcul); 
    boutonMoins.addActionListener(moteurCalcul); 
    boutonDiviser.addActionListener(moteurCalcul); 
    boutonMultiplier.addActionListener(moteurCalcul); 
    boutonEgale.addActionListener(moteurCalcul); 
  } 
}