当前位置: 首页 > 知识库问答 >
问题:

编译时无法重写actionPerformed(使用匿名类)。我做错了什么?

李谦
2023-03-14

已经浏览了之前发布的关于同一问题的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));
        }

编译时,这会给出一个消息-

我的框架。java:3:错误:MyFrame不是抽象的,并且不重写ActionListener类MyFrame extends Frame实现ActionListener中的抽象方法actionPerformed(ActionEvent)^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个答案

松昱
2023-03-14

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

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

 类似资料:
  • 我正在做一个项目,我的意图是运行一个玉米作业,并发送邮件给我的朋友,祝他们生日,我能够从MySQL DB获取电子邮件,并将其与当前日期进行比较,但当涉及到发送电子邮件时,我得到NullPointerException。 我确信应用程序属性没有问题,我在其他项目中也使用了它们,它们的功能正常 这是我得到以下信息的错误

  • 问题内容: 我试图动态加载文本文件并进行编译。 然后,我稍后将加载已编译的.class文件: 我目前遇到两个问题:首先是我加载的.java文件是否包含匿名类。看来JavaCompiler类不会编译它们。线程“主”中的异常java.lang.IllegalAccessException:类Loader.ClassLoader无法使用修饰符“”访问类Files.myname.myclass $ 1的成

  • 我是MVVMCROSS6.0和Xamarin的新手。 null ConfigurationChanges=ConfigChanges.Screensize ConfigChanges.Orientation)]公共类MainActivity:MvxFormsAppCompatActivity{protected override void OnCreate(Bundle Bundle){TabLa

  • 11:15:57创建表如果不存在tblcompany(companyid INT(11)无符号NOT NULL,custfirst VARCHAR(50),custlast VARCHAR(50),company VARCHAR(50),custphone VARCHAR(50), custemail VARCHAR(50),主键(companyid),索引(companyid),约束外键(com

  • 我有一个gradle 4.1多项目,其中包含一个包含2个子文件夹“api”和“实现”的“项目A”。 多项目使用在主build.gradle的子项目部分中定义的< code>kotlin和< code>java-library插件。实现项目具有对< code>:projectA:api的API依赖性 在api文件夹中,我在“src/main/java”中有kotlin和java文件,在实现项目中,我

  • public类EmployeeAbsences{public static void main(String[]args }