Hola:
Lo normal es añadir a cada botón también un x.setActionCommand(unString) en el que le pasas un String que identifique de alguna forma qué hace el botón. Luego añades el mismo actionListener a todos los botones y en el ActionEvent que recibes, puedes preguntar por el getActionCommand, para distinguir qué botón es el que ha lanzado el evento
Código:
x = new JButton(etiqueta);
x.setActionCommand(etiqueta); // o el texto que quieras
x.addActionListener (el listener);
...
// y en el código de actionPeformed()
public void actionPerformed (ActionEvent e) {
String etiqueta = e.getActionCommand();
if (etiqueta.equals("...")) {
....
} else if (etiqueta.equals("...")) {
} ...
}
De todas formas, si lo que hay que hacer en cada botón es muy distinto, lo mejor es hacer un ActionListener específico para cada botón.
Se bueno.