簡體   English   中英

即使沒有聚焦也如何聆聽按鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM