在mac OS X vs windows中发出KeyStroking

时间:2014-04-05 16:36:41

标签: java macos swing focus keystroke

   public void keyStrokeActions(){

        screen.setFocusable(true);
        screen.getInputMap().put(KeyStroke.getKeyStroke("pressed SPACE"),"attackAction");
        screen.getActionMap().put("attackAction",attackAction);

        screen.getInputMap().put(KeyStroke.getKeyStroke("pressed P"),"pauseAction");
        screen.getActionMap().put("pauseAction",pauseAction);
   }

我正在努力使这项工作,因为你可以看到它是一个简单的keyStroking屏幕是一个JPanel。 attackAction和pauseAction操作之前定义为全局变量。

在Windows中,一切都运行得很好,但是在Mac中却没有。无论按下按键,它都没有反应。我也试过

  screen.getInputMap().put(KeyStroke.getKeyStroke(' ',0),"attackAction");

  screen.getInputMap().put(KeyStroke.getKeyStroke(' '),"attackAction");

但我无法让它发挥作用。不是''或'P'或任何其他类型的char。任何人都可以带来一些亮点吗?

谢谢, 塞吉。

1 个答案:

答案 0 :(得分:0)

经过大量的工作后,我发现如果它在Mac上有效,它就不会在Windows上运行,如果它在Windows中有效,那么它就不会在Mac上运行。所以,基本上,java的多平台只要虚拟机很好用就可以了。