编译时无法覆盖actionPerformed(使用ANONYMOUS类)。我究竟做错了什么?

时间:2015-10-17 06:12:11

标签: java event-handling

已经查看了之前在同一问题上发布的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) class MyFrame extends 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();
    }
}

1 个答案:

答案 0 :(得分:0)

您正在匿名类实例中实现ActionListener,但您也声明MyFrame实现了ActionListener,但它没有实现MyFrame

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