我正在尝试制作一个小游戏,您必须将矩形当作椭圆形来躲避,我遇到了这个问题。
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/