防止JavaFx场景获得焦点-屏幕键盘

防止JavaFx场景获得焦点-屏幕键盘,java,javafx,Java,Javafx,我正在尝试用javafx构建一个屏幕键盘。我遇到的唯一问题是,当您选择javafx场景或单击窗口上的按钮时,焦点会重定向到javafx场景,而按钮单击实际上不会在浏览器、文本文档等上键入字母 这是我点击按钮的代码。我在用机器人课 private void handleButtonAction(ActionEvent event) throws AWTException { Robot a = new Robot(); a.keyPress(KeyEvent.VK_Y);//te

我正在尝试用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。我见过不少人试图问同样的问题,但没有人有正确的答案

我担心目前没有办法完全用JavaFx来实现这一点

下面是如何通过在Swing应用程序中包装JavaFx应用程序来实现这一点。建筑上的怪物;)

或者,我可以想象在这个场景中使用像JNI/JNA这样的本机层是可能的

然而,在这种情况下,我会质疑Java在技术上是否适合这项工作。有人可能会说,根据定义,OSK与操作系统紧密耦合,因此需要更多的本机工具包。这当然取决于项目的范围。作为一个辅助项目,这可能是好的,但作为一个产品,情况并非如此