[英]How to listen for a key pressed even with nothing in focus
我有一個GridPane(稱為工作區),其中包含許多不同的內容,例如,一個表視圖,多個按鈕和另一個GridPane。
我有以下代碼:
workspace.setOnKeyPressed(e -> {
if (e.isControlDown() && e.getCode() == (KeyCode.A)) {
System.out.println("B Pressed");
} else if (e.isControlDown() && e.getCode() == (KeyCode.B){
System.out.println("A Pressed");
}
});
如果選擇了某些選項,則僅按A和B鍵(打印)。 例如,如果我單擊表格視圖以使其處於焦點,或者單擊按鈕之一。 如果沒有任何焦點(通過單擊按鈕或表格視圖之外的某處),則按A或B不會執行任何操作。
有沒有什么辦法解決這一問題? 即使沒有重點關注,我也希望它能正常工作。
您是否嘗試過使用,但請確保在演出后放好了。 例:
Scene scene = new Scene(workspace, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
workspace.requestFocus();
這應該可以解決您的問題。
在根節點上設置處理程序。
yourRootNode.setOnKeyPressed(e -> {
if (e.isControlDown() && e.getCode() == (KeyCode.A)) {
System.out.println("B Pressed");
} else if (e.isControlDown() && e.getCode() == (KeyCode.B){
System.out.println("A Pressed");
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.