ActionListener未实现

JFrameWithPanel不是抽象的,并且不会覆盖java.awt.event.ActionListener中的抽象方法actionPerformed(java.awt.event.ActionEvent)公共类JFrameWithPanel extends JFrame实现ActionListener

我没有得到这个代码。 Book和Java站点告诉我这是该方法的语法,但这个错误再次出现。

import javax.swing.*; import javax.swing.JOptionPane; import java.awt.*; import java.awt.event.*; import java.lang.Math.*; import java.lang.Integer.*; import java.util.*; import java.util.Random; import java.io.*; import java.text.*; import java.text.DecimalFormat.*; public class JFrameWithPanel extends JFrame implements ActionListener { JButton button = new JButton("Exit"); public JFrameWithPanel() { super("JFrame with Panel"); JComboBox packageChoice = new JComboBox(); packageChoice.addItem("A+ Certification"); packageChoice.addItem("Network+ Certification "); packageChoice.addItem("Security+ Certifictation"); packageChoice.addItem("CIT Full Test Package"); packageChoice.addActionListener(this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pane = new JPanel(); pane.add(button); pane.add(packageChoice); setContentPane(pane); setSize(200,100); setVisible(true); } } 

然后

 public class CreateJFrameWithPanel { public static void main(String[] args) { JFrameWithPanel panel = new JFrameWithPanel(); } } 

该类实现ActionListener接口。 这意味着它必须实现一个方法:

 public void actionPerformed(ActionEvent) 

但是,您发布的类定义不包括此方法,因此您看到编译错误的原因。 要修复代码,请尝试添加以下方法:

 public void actionPerformed(ActionEvent evt) { Object obj = packageChoice.getSelectedItem(); JOptionPane.showMessageDialog(this, "You selected: " + obj); } 

implements ActionListener意味着您的类必须定义ActionListener接口中定义的方法。 它有一个方法:

 void actionPerformed(java.awt.event.ActionEvent); 

所以你必须要么有这个方法。 你需要它,因为你的按钮需要一个动作监听器。

在该方法中,您可以定义单击按钮时发生的情况。