【问题标题】:Unable to override actionPerformed (using ANONYMOUS class) upon compilation. What am I doing wrong?编译时无法覆盖 actionPerformed(使用 ANONYMOUS 类)。我究竟做错了什么?
【发布时间】:2015-10-17 06:12:10
【问题描述】:

已经查看了之前发布的关于同一问题的 3 个问题,但无法弄清楚我哪里出错了。 我正在尝试为按钮 (b) 实现 ActionListener -

b.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e)
        {
            int first= Integer.parseInt(tf1.getText());
            int second= Integer.parseInt(tf2.getText());
            int result= first+second;
            tf3.setText(Integer.toString(result));
        }

在编译时,这会给出一个 msg as-

MyFrame.java:3: 错误:MyFrame 不是抽象的并且不会覆盖 ActionListener 中的抽象方法 actionPerformed(ActionEvent) MyFrame 类扩展 Frame 实现 ActionListener ^ 1 个错误

完整代码片段:

import java.awt.*;
import java.awt.event.*;
class MyFrame extends Frame implements ActionListener
{
    TextField tf1;
    TextField tf2;
    TextField tf3;
    Button b;
    Panel p;
    MyFrame()
    {
        setSize(400,400);
        setVisible(true);
        p = new Panel();
        tf1 = new TextField(10);
        tf2 = new TextField(10);
        tf3 = new TextField(10);
        b = new Button("+");
        p.add(tf1);
        p.add(tf2);
        p.add(tf3);
        p.add(b);
        add(p);
        b.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e)
            {
                int first= Integer.parseInt(tf1.getText());
                int second= Integer.parseInt(tf2.getText());
                int result= first+second;
                tf3.setText(Integer.toString(result));
            }
        });
    }
    public static void main(String... args)
    {
        new MyFrame();
    }
}

【问题讨论】:

    标签: java event-handling


    【解决方案1】:

    您在匿名类实例中实现ActionListener,但您还声明MyFrame 实现ActionListener,但它没有。

    如果您希望MyFrame 直接实现ActionListener,请将actionPerformed 移动为该类的方法。如果不是,请从 MyFrame 声明中删除 implements ActionListener

    【讨论】:

    • 工作。非常感谢。
    猜你喜欢
    • 2013-08-06
    • 1970-01-01
    • 2016-07-18
    • 2015-06-25
    • 2013-12-10
    • 1970-01-01
    • 2019-12-23
    • 2014-06-15
    • 1970-01-01
    相关资源
    最近更新 更多