访问从ActionPerformed单击的JButton?

gal*_*kas 1 java swing jbutton actionlistener

我从大学毕业,我必须在界面中有5个按钮,当点击按钮时,我必须对该按钮执行操作.但是当我在actionPerformed()中使用"this"时,它并没有引用"被点击的按钮",而且我无法锻炼实际所指的内容.

所以:

  1. ActionPerformed()动作处理程序中"this"是指什么?
  2. 通过使用"e.getActionCommand()",使用"被点击"按钮做一些不错的方法,而不使用一堆if语句?

FTh*_*son 6

您可以使用EventObject#getSource(),它由ActionEvent继承.

@Override
public void actionPerformed(ActionEvent e) { 
    JButton source = (JButton) e.getSource();
    ...
}
Run Code Online (Sandbox Code Playgroud)

在ActionListener中,this引用ActionListener对象本身,而不是源对象.