【问题标题】:ActionListener is not abstract and does not override abstract method, but i have a actionPerformed, what is wrong?ActionListener 不是抽象的,也没有覆盖抽象方法,但是我有一个 actionPerformed,怎么了?
【发布时间】:2014-10-19 00:34:41
【问题描述】:

我正在为我的 OOP 类编写一个 java 程序,并且我正在尝试添加一些 actionlistener,但由于某种原因,我不断收到此错误“BattleshipUI.ExitListener 不是抽象的,并且不会覆盖抽象方法 actionPerformed(ActionEvent) ActionListener”,下面的代码是我如何构建我的 actionlistener。

public class ExitListener implements ActionListener {
    public void actionPerformed(ActionEvent e){
        int response = JOptionPane.showConfirmDialog(null,"Are you sure you want to exit?","Exit",JOptionPane.YES_NO_OPTION);

        if (response == JOptionPane.YES_OPTION){
            System.exit(0);
        }
    }


}

我的代码中有大约 4 个这样的错误,每一个都出现相同的错误。 任何帮助将不胜感激。

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import javafx.event.ActionEvent;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.BevelBorder;

【问题讨论】:

  • 我的猜测是你导入了错误的ActionEvent 类。请出示您的进口商品。
  • 我同意@JonSkeet 以及 BattleshipUI.ExitListener 似乎您的听众在 BattleshipUI 类中(因为如果是这种情况,您的 exitlistener 不能公开)?
  • 我相信我找到了问题,我正在导入“import javafx.event.ActionEvent;”但这应该是“import java.awt.event.ActionEvent;”谢谢你让我检查!

标签: java oop actionlistener


【解决方案1】:

在您的导入或更改中将 javafx.event.ActionEvent 更改为 java.awt.event.ActionEvent

public void actionPerformed(ActionEvent e){
        int response = JOptionPane.showConfirmDialog(null,"Are you sure you want to exit?","Exit",JOptionPane.YES_NO_OPTION);

        if (response == JOptionPane.YES_OPTION){
            System.exit(0);
        }
    }

public void actionPerformed(java.awt.event.ActionEvent e){
        int response = JOptionPane.showConfirmDialog(null,"Are you sure you want to exit?","Exit",JOptionPane.YES_NO_OPTION);

        if (response == JOptionPane.YES_OPTION){
            System.exit(0);
        }
    }

如果您需要保留 javafx 导入。

【讨论】:

  • 我刚刚抓住了这一点,非常感谢!昨天这件事一直困扰着我!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
相关资源
最近更新 更多