Ton code est sensé fonctionner.
Par contre fais attention avec les é et autres accents dans les noms de variable sous linux ça peut poser problème.
sinon ton code ne devrait fonctionner que si tu clique sur le bouton 0 étant donné que tu n'y a ajouté le listener que sur ce même bouton.
tu peux remplacer :
boutonchiffres[0].addActionListener(moteurdecalcul);
par :
1 2 3
| for (JButton b : boutonchiffres) {
b.addActionListener(moteurdecalcul);
} |
De cette manière tu aura des listener sur tous tes boutons de chiffres.
Mais évite vraiment les accents dans les noms de variable tu risque d'avoir des problèmes.
Le code final ressemblerait à ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import java.awt.event.*;
import javax.swing.*;
public class MoteurCalcul implements ActionListener {
public void actionPerformed(ActionEvent evt) {
// Retrouve la source de l'action
JButton boutonClique = (JButton) evt.getSource();
// Retrouve le libellé du bouton
String libelleBoutonClique = boutonClique.getText();
// Concatène le libellé du bouton au texte de la boîte de message
JOptionPane.showConfirmDialog(null, "Tu as appuyé sur " + libelleBoutonClique, "Juste un test", JOptionPane.PLAIN_MESSAGE);
}
} |
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
| import java.awt.*;
import javax.swing.*;
public class Calculatriceperso {
Calculatriceperso() {
JPanel contenufenetre = new JPanel();
BorderLayout disposition1 = new BorderLayout();
contenufenetre.setLayout(disposition1);
//
JPanel chiffres = new JPanel();
GridLayout disposition2 = new GridLayout(4,2);
chiffres.setLayout(disposition2);
//
JPanel panneauOperations = new JPanel();
GridLayout disposition3 = new GridLayout(4,1);
panneauOperations.setLayout(disposition3);
JTextField texte = new JTextField();
JButton boutonvirgule = new JButton(",");
JButton boutondivise = new JButton("/");
JButton boutonfois = new JButton("*");
JButton boutonmoins = new JButton("-");
JButton boutonplus = new JButton("+");
JButton boutonegale = new JButton("=");
JButton[] boutonchiffres = new JButton[10];
for(int i=0;i<10;i=i+1){
boutonchiffres[i] = new JButton(" "+i);
chiffres.add(boutonchiffres[i]);
}
panneauOperations.add(boutonvirgule);
panneauOperations.add(boutonfois);
panneauOperations.add(boutondivise);
panneauOperations.add(boutonmoins);
panneauOperations.add(boutonplus);
panneauOperations.add(boutonegale);
contenufenetre.add("Center",chiffres);
contenufenetre.add("East",panneauOperations);
contenufenetre.add("North",texte);
JFrame cadre = new JFrame("Calculatrice personnelle de luxe");
cadre.setContentPane(contenufenetre);
cadre.setVisible(true);
cadre.pack();
MoteurCalcul moteurdecalcul = new MoteurCalcul();
for (JButton b : boutonchiffres) {
b.addActionListener(moteurdecalcul);
}
}
public static void main(String[] args){
new Calculatriceperso();
}
} |
Partager