有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java ActionListener未实现

JFrameWithPanel不是抽象的,不重写java中的抽象方法actionPerformed(java.awt.event.ActionEvent)。awt。事件监听器 公共类JFrameWithPanel扩展JFrame实现ActionListener

我不明白这个密码。Book and 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();
 }
}

共 (2) 个答案

  1. # 1 楼答案

    该类实现了^{}接口。这意味着它必须实现一种方法:

    public void actionPerformed(ActionEvent)
    

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

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

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

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

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

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