为了账号安全,请及时绑定邮箱和手机立即绑定

无法获得公共类 GUI 扩展 Frame 实现 ActionListener 工作

无法获得公共类 GUI 扩展 Frame 实现 ActionListener 工作

眼眸繁星 2022-07-27 09:48: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 扩展 Frame 实现 ActionListener” - 不断返回错误,因为 GUI 不是抽象的,并且无法覆盖 java.awt.event.ActionListener 中的 actionPerformed(java.awt.event.ActionEvent)。但我似乎无法弄清楚这个错误在哪里以及为什么会不断返回。我试图搜索各种方法来修复它,但仍然存在编译器错误。我错过了什么?
查看完整描述

2 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

您完全错过了错误告诉您的内容:该actionPerformed()方法的具体实现(因为您实现了 ActionListener 接口)

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

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

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

然后在相关部分:

aapl.addActionListener(this);

对于后者,只需保留您的代码,但从implements ActionListener您的类签名中删除

无论哪种方式都应该工作,你选择


查看完整回答
反对 回复 2022-07-27
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

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


查看完整回答
反对 回复 2022-07-27
  • 2 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号