
Envoyé par
la_chevre
Mais ce que je comprends pas c'est la creation d'instance du Listener pour chaque composant.
Comme l'a dis Ivelios, on peut utiliser un même listener voir la même implémentation de l'ActionListener. il faut donc différencier le bouton source de l'action comme on a fait dans cette source de la FAQ :
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
|
import java.awt.event.*;
// Étape 1 : déclaration de la classe
public class MaClasse implements ActionListener {
// Étape 2 : créations des boutons
JButton monBouton = new JButton("Un bouton vivant");
JButton monBouton2 = new JButton("Un bouton vivant2");
public MaClasse() {
// Étape 3 : on ajoute le listener aux boutons
monBouton.addActionListener(this);
monBouton.addActionListener(this);
}
// Étape 4 : l'implémentation de l'ActionListener
public void actionPerformed(ActionEvent e) {
System.out
.println("Un bouton a été cliqué, timestamp : " + e.getWhen());
// Étape 5 : différenciation de la source d'évènement
if (e.getSource() == monBouton
|| e.getActionCommand() == monBouton.getText()) {
System.out.println("C'est le bouton 1 !");
} else if (e.getSource() == monBouton2
|| e.getActionCommand() == monBouton2.getText()) {
System.out.println("C'est le bouton 2 !");
}
}
} |
dans ce test par exemple,
if(e.getSource() == monBouton2 || e.getActionCommand() == monBouton2.getText())
on compare le libellé du bouton avec celui de l'action capturée || on compare le bouton et l'objet source de l'évènement
tu peux donc mettre l'un des deux conditions dans ton code.
Partager