2015-02-23 152 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)