У вас есть пара вариантов. В текущем случае у вас есть, где объекты JButton
локально локализованы внутри конструктора, вам нужно будет проверить actionCommmand
, потому что объекты недоступны из ActionListener
с их текущей областью. Таким образом, вы можете сделать это
class ButtLis implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if ("One".equals(command)) {
// do something
}
}
}
. Если вы хотите сравнить источник объекта, вам нужно будет дать вашим кнопкам глобальную область действия
public class Foo {
JButton button = new JButton("One");
JButton button2 = new JButton("Two");
class ButtLis implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
}
}
}
}
. Третья опция - зарегистрировать кнопок
public void go() {
...
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// do something
}
});
}
См. больше в Как использовать кнопку Common и Как писать ActionListeners