在某些计算机上,根本没有注册按“ Enter”键的原因,可能有任何原因吗?

时间:2019-05-30 09:25:08

标签: java javafx keyevent

我正在使用JavaFX进行分配,并且该程序应该对几个键盘命令做出反应。教授退回了我发送给他的可执行文件.jar,抱怨说当他按下Enter键时什么也没发生。其他键盘输入在他的终端上都起作用。

我以为我可能错过了一些东西,所以我检查了一下,最后,“ Enter”键在Windows 7 PC和Windows 10笔记本电脑上均按预期工作。之后,我简短地编辑了该程序,以便将所有按键输入都打印到文本文件中,而不管上下文如何,然后将该版本发送给教授。在他的答复中,证实了由于某种原因,该应用程序根本没有在教授一侧注册被按下的“ Enter”键,而其他键仍然可以正常工作。

我使用的代码非常原始,我只是为了测试该问题而编写的,这里是 println 的较短版本:

     private void onKeyPressed(KeyEvent e) 
     {
        System.out.println("Pressed key "+ e.getCode());
        ...
     }

此函数在 start 方法中使用,其相关部分在此处:

    public void start(Stage primaryStage) 
{
    root = new Group();

    EventHandler<KeyEvent> e37 = dog ->  
    {
       onKeyPressed(dog);
    };



    scene = new Scene(root, width, height);
    scene.addEventHandler(KeyEvent.KEY_PRESSED, e37);

    primaryStage.setScene(scene);
    primaryStage.show();
}

main 方法如下:

public static void main(String[] args) 
{
    launch(args);
}

来自日志文件的示例:

  

按下TAB键

     

按Enter键

     

按下TAB键

     

按下键

     

按下向上键

     

按Enter键

在我教授的PC上,它看起来很相似,只有“ Enter”(也就是我们同时发现的“ Tab”)键没有任何结果:

  

按下DIGIT4键

     

按ESCAPE键

     

按了BACK_SPACE键

     

按删除键

     

按下添加键

     

按SUBTRACT键

     

多次按下键

     

按分割键

     

按下了BACK_SP键

教授正在使用Windows10。如上所述,我同时使用Windows 7和Windows 10尝试重现该错误,但无济于事。使用JavaFX 8,教授在回答我的电子邮件后将立即添加该教授的版本。

关于什么可能导致这种行为的任何想法?

编辑:忘记了,按键输入是使用JavaFX的KeyEvent处理的

EDIT2:原来是版本问题。我安装了JavaFX 12,并且出现了问题。正在努力修复这些问题。

1 个答案:

答案 0 :(得分:0)

解决了,原来这名教授正在使用JavaFX 12(而我正在使用8)。安装后,行为便匹配了。