ActionListener не реализует
-
27-09-2019 - |
Вопрос
JFrameWithPanel не является абстрактным и не отменяет абстрактный метод Acceperformed (Java.awt.event.actionevent) в Java.awt.event.actionListener Public класс JframewithPanel расширяет Jframe Inlaights ActionListener
Я не понимаю этот код. Книга и сайт 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();
}
}
Решение
Класс реализует ActionListener
интерфейс. Это означает, что он должен реализовать метод:
public void actionPerformed(ActionEvent)
Тем не менее, определение класса, которое вы разместили, не включают этот метод, следовательно, почему вы видите ошибку компиляции. Чтобы исправить код, попробуйте добавить следующий метод:
public void actionPerformed(ActionEvent evt) {
Object obj = packageChoice.getSelectedItem();
JOptionPane.showMessageDialog(this, "You selected: " + obj);
}
Другие советы
implements ActionListener
означает, что ваш класс должен определить методы, которые определены в ActionListener
интерфейс. У него есть один метод:
void actionPerformed(java.awt.event.ActionEvent);
Таким образом, вы должны либо иметь этот метод. Вам нужно это, потому что ваша кнопка нуждается в действии слушателя.
В этом методе вы определяете, что происходит, когда кнопка нажала.