即使没有任何焦点,如何按下按键

时间:2017-04-18 22:06:34

标签: java javafx

我有一个GridPane(称为工作空间),里面有很多不同的东西,比如tableview,多个按钮和另一个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仅起作用(打印输出)。例如,如果我点击tableview以使其处于焦点或我单击其中一个按钮。如果没有任何焦点(通过我点击按钮或桌面视图之外的某处),按A或B不会执行任何操作。

有什么方法可以解决这个问题吗?我希望它能够工作,即使没有任何焦点。

2 个答案:

答案 0 :(得分:0)

您是否尝试使用过,但请确保在显示舞台后将其放置。例如:

foo = Session.query(A).filter(....).with_for_update().one()

这可以解决您的问题。

答案 1 :(得分:0)

在根节点上设置处理程序。

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");
            }
});