为什么我的角色不会移动?

时间:2013-01-27 01:16:26

标签: java eclipse keylistener

我有我的代码。

public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == 37){
        personx -=2;
    }
    if (e.getKeyCode() == 38){
        persony -=2;
    }
    if (e.getKeyCode() == 39){
        personx +=2;
    }
    if (e.getKeyCode() == 40){
        persony +=2;
    }
    try {
        Thread.sleep((long) 0.04);
    } catch (InterruptedException e1) {
        e1.printStackTrace();
    }

代码不会移动角色。 我检查了它是否被调用,我写道:

public void keyPressed(KeyEvent e) {
    System.out.println("Test");
}

但它没有打印测试。

1 个答案:

答案 0 :(得分:1)

您的代码表明您正在使用Swing或AWT GUI。要使KeyListeners工作,您需要:

  • 首先将KeyListener添加到可见GUI上的组件
  • 确保该组件可聚焦
  • 并且听取的组件具有GUI的焦点。

如果这是一个Swing GUI,我建议您实际上不使用KeyListener而是使用Key Bindings,因为它们比KeyListeners更灵活,并允许您在多个部分重用AbstractActions程序