2015-02-23 84 views
-2

所以,我看就如何使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); 
    } 
} 

我编码在Java中1.7 是否有任何人知道如何解决执行错误?谢谢。

+5

嘛,你懂的错误信息?如果你实际上不想提供任何'KeyListener'方法,你为什么要写'实现KeyListener'?你明白什么意思来实现一个接口? – 2015-02-23 07:30:17

回答

2

如果你想编写实现其他类则必须“实行”一类,或者换句话说,编写所有必需的方法,其他类需要或您将结束与这些执行错误。

如果你不明白这一点,我强烈建议你在Oracle网站上阅读Implementing an Interface页面。

针对您的特殊情况下,从KeyListener javadoc中,我们可以看到,你将被要求执行:

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