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();
 }
}
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top