我的代碼片段的屏幕截圖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
您的類簽名中刪除
無論哪種方式都應該工作,你選擇

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
這只是意味著您需要為 actionPerformed() 提供一個實現。ActionListener 是一個接口,所以如果你在一個類中實現它,你應該在你的類的某個地方填寫接口中的任何方法。此頁面應該為您提供更多信息:https ://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
添加回答
舉報
0/150
提交
取消