ActionListener isn't Implementing

霸气de小男生 提交于 2019-12-20 04:17:25

问题


JFrameWithPanel is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener public class JFrameWithPanel extends JFrame implements ActionListener

I Don't get this code. Book and Java site tells me this is the syntax for the method, but again this error shows up constantly.

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);

 }
}

then later

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

回答1:


The class implements the ActionListener interface. This means that it must implement a method:

public void actionPerformed(ActionEvent)

However, the class definition you've posted does not include this method, hence why you are seeing a compilation error. To fix the code, try adding the following method:

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



回答2:


implements ActionListener means that your class must defined the methods that are defined in the ActionListener interface. It has one method:

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

So you must either have this method. You need it, because your button needs an action listener.

In that method you define what happens when the button is clicked.



来源:https://stackoverflow.com/questions/3045982/actionlistener-isnt-implementing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!