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

无法使公共类GUI扩展框架实现ActionListener正常工作

汤承德
2023-03-14

我的代码片段的屏幕截图

import java.awt.*; 
import java.awt.event.*;
import java.awt.image.BufferedImage; 
import java.io.*;
import javax.imageio.ImageIO; 
import javax.swing.*;

public class GUI extends Frame implements ActionListener
{
 private TextField buy = new TextField(30);
 private Button appl;

 public GUI(){
    super("GUI");
    setLayout(new FlowLayout());
    setSize(400,150);
    setTitle("Stock Market Exchange");
    setVisible(true);

    aapl = new Button("Buy AAPL share");
    add(aapl);
    aapl.setEnabled(true);
    aapl.setBounds(35,6,112,36);
    aapl.setBackground(new Color(214,217,223));
    aapl.setForeground(new Color(0,0,0));
    aapl.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent evt){
            createAAPLshare();
        }
    });
    add(buy);
    aapl.setVisible(true);
}

"公共类GUI扩展框架实现ActionListener"-不断返回一个错误,因为GUI不是抽象的,并且不能覆盖ActionListener中java.awt.event.actionPerform(java.awt.event.ActionEvent)。但是我似乎无法准确地找出这个错误在哪里以及为什么不断返回。我试图搜索各种方法来修复它,但是仍然有一个编译器错误。我错过了什么?

共有2个答案

彭鸿彩
2023-03-14

您缺少的正是错误告诉您的:一个actionPerformed()方法的具体实现(因为您实现了ActionListener接口)

或者在GUI类中提供此方法的实现(并相应地在GUI类的一个或多个组件中使用它),或者如果不需要,从类中删除实现ActionListener部分

对于前者,请在类中添加该方法的实现:

public void actionPerformed(ActionEvent evt){
            createAAPLshare();
}

然后在相关部分:

aapl.addActionListener(this);

对于后者,只需保持代码原样,但从类签名中删除implements ActionListener

你选择哪种方法都可以

曾阳飙
2023-03-14

这只意味着您需要为actionPerformed()提供一个实现。ActionListener是一个接口,因此,如果您在类中实现它,那么您需要在类中的某个地方填充接口中的任何方法。此页面应提供更多信息:https://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

 类似资料:
  • 问题内容: 不管我在BUILD_LOG_EXCERPT中输入什么内容,我得到的都是一封空的电子邮件,因此可以使用一些帮助。 我有一个写入控制台的Java程序。Jenkins控制台输出的片段如下所示: 在Jenkins作业中,我创建一个Post Build步骤,并将以下行放入Default Content: 当我触发工作时,我收到的只是一封空电子邮件。但是,如果我添加 然后我会在电子邮件中获得完整的

  • 问题内容: 我编写了上面的代码,以提供更方便的方式来声明自定义uicolor。但是以某种方式,它通过调用自身直到堆栈溢出而使我的应用程序崩溃。怎么了 另外,我只是意识到我没有明确调用此init函数。但是,当发生此错误时,我正在打电话。当然,如果我显式调用此函数,仍然会发生错误! 问题答案: 我认为这样做不会带来任何不便: 但是如果您真的需要一个,可以按照以下步骤操作:

  • 问题内容: 这似乎是最容易的事情,但它没有用。在普通的浏览器中,.html和.js文件可完美运行,但在Chrome扩展程序中,该功能无法执行应有的功能。 .js文件: .html文件: 因此,基本上,一旦用户单击“ hyhy”,“ ha”应更改为“ xxx”。再说一次- 它在浏览器中完美运行,但在扩展程序中不起作用。你知道为什么吗?以防万一我还要在下面附加manifest.json。 提前致谢!

  • 第十三章介绍了如何开发一个Web框架,通过介绍MVC、路由、日志处理、配置处理完成了一个基本的框架系统,但是一个好的框架需要一些方便的辅助工具来快速的开发Web,那么我们这一章将就如何提供一些快速开发Web的工具进行介绍,第一小节介绍如何处理静态文件,如何利用现有的twitter开源的bootstrap进行快速的开发美观的站点,第二小节介绍如何利用前面介绍的session来进行用户登录处理,第三小

  • 本文向大家介绍Thinkphp 框架扩展之类库扩展操作详解,包括了Thinkphp 框架扩展之类库扩展操作详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Thinkphp 框架扩展之类库扩展操作。分享给大家供大家参考,具体如下: 类库扩展 ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。 公共类库 公共类库通常是

  • 本文向大家介绍thinkphp5框架扩展redis类方法示例,包括了thinkphp5框架扩展redis类方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkphp5框架扩展redis类方法。分享给大家供大家参考,具体如下: 笔者在开发时发现,thinkphp5的自带redis类方法,只有简单的读取缓存、写入缓存的基本方法,远不能满足我们业务的需求。redis本身支持五种数据