Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mac OS X与windows中的击键问题_Java_Macos_Swing_Focus_Keystroke - Fatal编程技术网

Java mac OS X与windows中的击键问题

Java mac OS X与windows中的击键问题,java,macos,swing,focus,keystroke,Java,Macos,Swing,Focus,Keystroke,我正在努力使这项工作,正如你们所看到的,这是一个简单的按键,屏幕是JPanel。动作attackAction和pauseAction之前定义为全局变量 在windows中,一切都能完美工作,但在mac中却不能。不管我按什么键,它都不会反应。我也试过了 public void keyStrokeActions(){ screen.setFocusable(true); screen.getInputMap().put(KeyStroke.getKeyStro

我正在努力使这项工作,正如你们所看到的,这是一个简单的按键,屏幕是JPanel。动作attackAction和pauseAction之前定义为全局变量

在windows中,一切都能完美工作,但在mac中却不能。不管我按什么键,它都不会反应。我也试过了

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

但我不能让它工作。不使用“”或“P”或任何其他类型的字符。谁能带点光来

谢谢,
Sergi。

在花了很多时间研究它之后,我发现如果它在Mac上工作,它在windows上就不会工作,如果它在windows上工作,它在Mac上就不会工作。因此,基本上,java的多平台,只要虚拟机可以使用它

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