java - 类不是抽象的,不会重写 KeyListener 中的抽象方法 keyReleased(KeyEvent)

标签 java swing compiler-errors awt keylistener

我正在尝试制作一个小游戏,您必须将矩形当作椭圆形来躲避,我遇到了这个问题。

Dodge is not abstract and does not override abstract method keyReleased(KeyEvent) in KeyListener 

我已经在互联网上搜索试图找到答案,但找不到解决方案。

package dodge;
import java.awt.event.KeyListener;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.*;
import java.awt.Graphics;
public class Dodge extends JPanel implements KeyListener {

private int x = 5, y = 5;

public Dodge(){
    setSize(new Dimension(500, 400));
    setPreferredSize(new Dimension(500, 400));
    //setBackground(Color.BLACK);
}

public void paint(Graphics g){
    g.setColor(Color.BLACK);
    g.fillRect(0, 0, getWidth(), getHeight());

    g.setColor(Color.WHITE);
    g.fillOval(x, y, 20, 20);

    repaint();
}

    public static void main(String[] args) {
    Dodge game = new Dodge();

    JFrame frame = new JFrame();
    frame.setTitle("Dodge the Rectangles");
    frame.add(game);
    frame.pack();
    frame.setResizable(false);
    frame.setSize(new Dimension(500, 400));
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
}
}

最佳答案

正如已经指出的,您需要编写或继承您实现的任何接口(interface)所需的每个方法。作为一种方便的实现接口(interface),接口(interface)可能具有与其关联的类,该类为其部分或全部方法提供默认实现。

对于 KeyListener,便利类是 java.awt.event.KeyAdapter。它提供了空方法。如果扩展的话,只需要直接实现你想要的方法即可。

要查找接口(interface)的便利类,请扫描其“所有已知实现类”列表。

关于java - 类不是抽象的,不会重写 KeyListener 中的抽象方法 keyReleased(KeyEvent),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059972/

相关文章:

java - JScrollPane 添加到框架问题

swing - 从当前的 LookAndFeel 中查找 Icon

Java 8 流映射,将 null 保留为 null

java - 限制基于 Java 的 Web 服务器 TLS 协议(protocol)以供 Wireshark 检查

java - 是否可以使未展开的 Accordion Pane 点击通过?

java - 如何将ImageIcon 添加到JDialog 中?

编译器错误退出状态1

c - 通过 Visual C++ 编译器识别 ARM 软件中断 (SWI) 函数

c# - 如何修复Server 2016上的定位错误?

java - 在 Java 中使用迭代器的多个 If 条件