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);
所以你必须要么有这个方法。 你需要它,因为你的按钮需要一个动作监听器。
在该方法中,您可以定义单击按钮时发生的情况。