2017-02-16 136 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與操作系統緊密相連,因此更多的本地工具包也是如此。這當然取決於你的項目的範圍。作爲一個側面項目,這可能是好的,但作爲一個產品沒有。