2013-11-24 62 views
-2

我想作一個遊戲,一個正方形善有善報使用箭頭鍵,但我無法聲明它 看到moveIt聲明的KeyEvent

public void moveIt(/*Won't work here, since its started on run method*/) { 


KeyEvent evt=/*???*/; //how do i declare this keyevent? 


switch (evt.getKeyCode()) { 
     case KeyEvent.VK_DOWN: 
      myY += 5; 
      break; 
     case KeyEvent.VK_UP: 
      myY -= 5; 
      break; 
     case KeyEvent.VK_LEFT: 
      myX -= 5; 
      break; 
     case KeyEvent.VK_RIGHT: 
      myX += 5; 
      break; 
    } 



} 

myXmyY是座標使用矩形在另一種方法。

順便說一句,我是新來的java。它是我的第一個編程語言。

回答

0

簡短的回答是你不要申報KeyEventKeyEvent由用戶按下鍵生成。那個事件然後被KeyListener拾取,在那裏你放置邏輯來處理關鍵事件。

public class MyClass extends JPanel implements KeyListener 
{ 
    // Add your intialization code here 

    @Override 
    public void keyTyped(KeyEvent e) 
    { 
     switch (evt.getKeyCode()) 
     { 
      case KeyEvent.VK_DOWN: 
       myY += 5; 
       break; 
      case KeyEvent.VK_UP: 
       myY -= 5; 
       break; 
      case KeyEvent.VK_LEFT: 
       myX -= 5; 
       break; 
      case KeyEvent.VK_RIGHT: 
       myX += 5; 
       break; 
     } 
    } 
} 

看看this tutorial。你錯過了一個竅門,而審查基本面可能會讓你回到正軌。

+0

但是,我將如何調用這種方法,我另一種方法? – user2875050

+0

您是否閱讀過本教程?閱讀。 KeyListener的重點在於它監聽關鍵事件!你根本就不直接調用這個方法。您現在需要閱讀教程,因爲您認爲發生的事情顯然不是正在發生的事情。 – MarsAtomic

+0

JFrame不適用於KeyEvents – mKorbel