2017-02-16 38 views
0

我想在javafx中构建屏幕键盘。我遇到的唯一问题是,当您选择javafx场景或单击窗口上的按钮时,焦点将被重定向到javafx场景,并且按钮点击实际上不会在浏览器,文本文档等上键入字母。防止JavaFx场景获得焦点 - 屏幕键盘

这里是我点击按钮的代码。我正在使用机器人课程。

private void handleButtonAction(ActionEvent event) throws AWTException { 

    Robot a = new Robot(); 
    a.keyPress(KeyEvent.VK_Y);//testing keypress of "Y". 

} 

我在Swing中看到了如何将focus属性设置为false,但是我使用的是JavaFx。我见过不少人尝试这个相同的问题,但没有人有正确的答案。

回答

0

恐怕目前还没有办法单纯用JavaFx来实现这一点。

这是an example如何通过将您的JavaFx应用程序包装到Swing应用程序中来实现它。一个建筑怪物;)。

另外,我可以想象在这种情况下使用像JNI/JNA这样的本地层是可能的。

但是,在这种情况下,我会质疑Java是否在技术上是正确的工具。有人可能会说,按照定义,OSK与操作系统紧密相连,因此更多的本地工具包也是如此。这当然取决于你的项目的范围。作为一个侧面项目,这可能是好的,但作为一个产品没有。