Java“.addActionListener(this)”

如果我添加一个动作侦听器,那么我总是在括号之间使用“this”。 但这个“这个”代表什么呢?

addActionListener方法将当前类对象作为参数。 “这个”关键词只是意味着“这个对象我现在在工作”。 如果您正在使用netbeans,则可以键入“this”并在其后面加上一段时间来查看“this”类中定义的所有方法。 它应列出您的类中定义的所有方法,包括任何inheritance的方法。

为了完全理解“this”的含义,您必须首先理解类和对象之间的关系。

如果你想了解它,“this”是对当前对象的引用。

“this”代表你所在的当前类实例。

只要该类实现ActionListener接口,它就会起作用。

如果您愿意,可以使用完全不同的对象,例如创建一个实现ActionListener接口的匿名内部类:

button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Hello!!!"); } }); 

如果您想拥有多个不同的动作侦听器但又不想为每个动作侦听器创建单独的类,这将非常有用。

如果你看一下教程,那么你会看到……

要编写动作侦听器,请按照以下步骤操作:
声明一个事件处理程序类,并指定该类实现ActionListener接口或扩展实现ActionListener接口的类。
例如:

 public class MyClass implements ActionListener { 

将事件处理程序类的实例注册为一个或多个组件上的侦听器。
例如:

 someComponent.addActionListener(instanceOfMyClass); 

包含在侦听器接口中实现方法的代码。
例如:

  public void actionPerformed(ActionEvent e) { ...//code that reacts to the action... } 

这表示一个已实现且已实例化的ActionListener,它恰好是您的类。 您可以很好地传递任何实现ActionListener接口的类。

这样,当按下按钮时,将调用actionPerformed方法