Java addActionListener错误

Ivy*_*Ivy 2 java events swing actionlistener

我在Java中创建了一个ActionListener按钮

d1.addActionListener(this);
Run Code Online (Sandbox Code Playgroud)

给了我一个关于"这个"的错误,但是

d1.addActionListener((ActionListener) this);
Run Code Online (Sandbox Code Playgroud)

作品.为什么我需要添加"(ActionListener)"?我在教程中看到第一个应该工作; 为什么不适合我?

Hov*_*els 5

很简单,this不是ActionListener.您的类是否实现了ActionListener接口?编译器告诉你它没有.

即,这将工作:

public class Foo implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
       //....
    }

}
Run Code Online (Sandbox Code Playgroud)

但这不会

public class Bar {

}
Run Code Online (Sandbox Code Playgroud)