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.