Reputation: 165
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();
}
}
Upvotes: 3
Views: 8396
Reputation: 54705
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);
}
Upvotes: 5
Reputation: 597116
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.
Upvotes: 1