Java 声明KeyEvent

Java 声明KeyEvent,java,applet,jframe,keyevent,Java,Applet,Jframe,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;

我想做一个游戏,让一个正方形用箭头键旋转,但我无法声明 看到了吗

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;
    }



}
myX
myY
是矩形在另一种方法中使用的坐标


顺便说一下,我对java还不熟悉。这是我的第一种编程语言。

简单的回答是,您不声明一个
KeyEvent
KeyEvent
由用户按键生成。然后,
键侦听器
会拾取该事件,您可以在其中放置处理键事件的逻辑

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;
        }
    }
}

看一看。你错过了一个技巧,复习基础知识可能会让你重回正轨。

但是我怎么才能称这种方法为另一种方法呢?你读过教程了吗?读一下。KeyListener的全部意义在于它监听关键事件!您根本不直接调用此方法。您需要立即阅读教程,因为您认为正在发生的事情显然不是正在发生的事情。JFrame对于KeyEvents不可聚焦