Ну, есть несколько способов сделать это ... Либо вы создаете анонимных слушателей для каждой кнопки, а затем, в зависимости от того, что вы хотите делать, запускаете методы в других классах и т. п .;
JButton b1 = new JButton();
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
//Do something!
OtherClass other = new OtherClass();
other.myMethod();
}
});
JButton b2 = new JButton();
b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
//Do something else!
...
}
});
В качестве альтернативы вы используете командную строку и ассоциируете уникальную команду (сделанную окончательно, желательно), с которой вы сравниваете, когда вы принимаете actionPerformed в общей реализации прослушивателя;
//In your class, somewhere...
public final static String CMD_PRESSED_B1 = "CMD_PRESSED_B1";
public final static String CMD_PRESSED_B2 = "CMD_PRESSED_B2";
//Create buttons
JButton b1 = new JButton();
JButton b2 = new JButton();
//Assign listeners, in this case "this", but it could be any instance implementing ActionListener, since the CMDs above are declared public static
b1.addActionListener(this);
b2.addActionListener(this);
//Assign the unique commands...
b1.setActionCommand(CMD_PRESSED_B1);
b2.setActionCommand(CMD_PRESSED_B2);
И затем , в реализации вашего слушателя;
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals(CMD_PRESSED_B1)
{
//Do something!
OtherClass other = new OtherClass();
other.myMethod();
}
else if (e.getActionCommand().equals(CMD_PRESSED_B2)
{
//Do something else!
...
}
}