有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java实现中的问题

所以,我在看一个关于如何用java制作基本2d游戏的教程,但在教程的某一点上,他告诉我们实现KeyListener。当我试图这样做的时候,他给了我这个错误,我找不到解决的办法

错误消息-

java: "PackageName"."ClassName" is not abstract and does not override abstract method keyReleased(java.awt.event.KeyEvent) in java.awt.event.KeyListener

这是我的密码-

package Classes;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyListener;
class Data extends JPanel implements KeyListener{
    static int x = 225;
    static int y = 200;
    public Data(){
        setBackground(Color.BLACK);
    }
    public void paint(Graphics g){

        g.setColor(Color.WHITE);
        g.drawOval(x, y, 50, 50);
        repaint();
    }
    public static void main(String[] args){
        JFrame frame = new JFrame();
        Data game = new Data();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.add(game);
        frame.pack();
        frame.setSize(new Dimension(500, 400));
        frame.setTitle("Game");
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

我正在用Java1.7编写代码 有人知道如何修复实现错误吗?谢谢


共 (1) 个答案

  1. # 1 楼答案

    如果要编写实现另一个类的类,则必须“实现”,或者换句话说,编写另一个类所需的所有方法,否则将导致这些实现错误

    如果您不理解这一点,我强烈建议您阅读Oracle站点上的Implementing an Interface页面

    对于您的具体情况,从KeyListenerjavadoc中,我们可以看到您需要实现:

    void keyTyped(KeyEvent e)
    void keyPressed(KeyEvent e)
    void keyReleased(KeyEvent e)