java - ActionAdapter 无法解析为类型

标签 java eclipse event-handling

我已经开始学习事件处理程序,并尝试尝试一些基本概念。我在下面的代码中遇到了一个奇怪的错误。 我正在使用 Eclipse,在尝试向按钮 b 添加 ActionListener 时出现以下错误:

“Button 类型中的 addActionListener(ActionListener) 方法不适用于 new ActionAdapter(){} 类型”

“ActionAdapter 无法解析为类型”

import java.awt.*;
import java.awt.event.*;


public class Test extends Frame{

private TextField text = new TextField(20);
Button b;
private int num_clicks = 0;

public static void main(String args[]){
Test appwind = new Test("title");
appwind.setSize(300,300);
appwind.setTitle("Irrelevant");
appwind.setVisible(true);
}

public Test(String title)
{
    super(title);
    setLayout(new FlowLayout());
    addWindowListener(new WindowAdapter(){
            public void WindowClosing(WindowEvent e) {
                System.exit(0);}});
    b = new Button("Click");
    add(b);
    add(text);
    b.addActionListener(
            new ActionAdapter()
            {
                public void actionPerformed(ActionEvent e)
                {
                    num_clicks++;
                    text.setText("number of times clicked: " + num_clicks);}
            });


}
}

最佳答案

适配器类是当底层接口(interface)有 2 个或更多方法时提供的便利类。 ActionListener 只有一种方法 - 使用 ActionListener 代替

b.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {
         ...
     }
});

关于java - ActionAdapter 无法解析为类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21710582/

相关文章:

java - 为什么我的图像不显示在 jsp 中? [使困惑]

java - 如何使用 Git 使 Beyond Compare 在 Eclipse 中工作?

javascript - EventEmitter 触发一次,请求在此后挂起

java - 如何检查 JAVA 中的空 XML 元素

java - 有没有办法禁用 java.util.logging 并在以后启用它?

java - AgitarOne无法连接到本地主机:8080/agitar-server on eclipse

c# - Javascript 执行 .cs 中的代码?

javascript - 我可以在自定义事件的 jQuery 实时处理程序中获取可用数据吗?

java - 不为创建的新配置单元表创建分区文件

java 字符串替换方法有效但 replaceAll 抛出错误