ActionListener non sta implementando
-
27-09-2019 - |
Domanda
JFrameWithPanel non è astratto e non sovrascrive il metodo astratto ActionPerFormed (java.awt.event.actionevent) in java.awt.event.Actionlistener Classe pubblica JFramewithPanel estende JFrame implementa ActionListener
Non ottengo questo codice. Il sito di libri e Java mi dice che questa è la sintassi del metodo, ma di nuovo questo errore viene costantemente visualizzato.
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);
}
}
poi più tardi
public class CreateJFrameWithPanel
{
public static void main(String[] args)
{
JFrameWithPanel panel = new JFrameWithPanel();
}
}
Soluzione
La classe implementa il ActionListener
interfaccia. Ciò significa che deve implementare un metodo:
public void actionPerformed(ActionEvent)
Tuttavia, la definizione della classe che hai pubblicato non include questo metodo, quindi perché stai vedendo un errore di compilazione. Per correggere il codice, prova ad aggiungere il seguente metodo:
public void actionPerformed(ActionEvent evt) {
Object obj = packageChoice.getSelectedItem();
JOptionPane.showMessageDialog(this, "You selected: " + obj);
}
Altri suggerimenti
implements ActionListener
significa che la tua classe deve definire i metodi definiti in ActionListener
interfaccia. Ha un metodo:
void actionPerformed(java.awt.event.ActionEvent);
Quindi devi avere questo metodo. Ne hai bisogno, perché il tuo pulsante ha bisogno di un ascoltatore di azione.
In quel metodo si definisce cosa succede quando si fa clic sul pulsante.