Hai essenzialmente 2 metodi.
1) Definisci un ActionListener per ciascun pulsante.
2) Aggiungi lo stesso ActionListener a tutti i pulsanti e li distingui in qualche modo.
Il primo non necessita di grosse spiegazioni:
codice:
pulsante1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent ae) {
... // Fai qualcosa
}
});
pulsante2.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent ae) {
... // Fai qualcosa altro
}
});
...
Per il secondo puoi agire, anche qui, in modi diversi. Ad esempio, puoi utilizzare il metodo getLabel() per distinguerli:
codice:
public void actionPerformed(ActionEvent ae) {
JButton jb = (JButton) ae.getSource();
if ( jb.getLabel().equals("Pulsante 1") ) {
... // Fai qualcosa
}
if ( jb.getLabel().equals("Pulsante 2") ) {
... // Fai qualcosa altro
}
...
}
Oppure puoi scrivere una classe che estende JButton che preveda un metodo per distinguerli, ad esempio nu intero (così si può usare lo switch() ):
codice:
public class Pulsante extends JButton {
private int idx;
public Pulsante(String str, int idx) {
super(str);
this.idx = idx;
}
public int getIdx() { return idx; }
}
...
Pulsante p1 = new Pulsante("Testo", 0);
Pulsante p2 = new Pulsante("Testo", 1);
...
public void actionPerformed(ActionEvent ae) {
Pulsante p = (Pulsante) ae.getSource();
switch( p.getIdx() ) {
case 0:
... // Fai qualcosa
break;
case 1:
... // Fai qualcos'altro
break;
}
}
Ciao.