使用KeyEvent激活按钮 - 没有焦点?

时间:2014-12-26 22:12:41

标签: java javafx scenebuilder

我正在开发一个数据输入GUI,其中包含用户输入数据的~12个文本字段,然后用鼠标单击“保存”按钮以保存该数据。

我添加了一个KeyEvent,当用户按下“Enter”时,它也会保存数据:

//Button Shortcut - Enter/Save
@FXML
public void handleEnterPressed(KeyEvent event) {
    if (event.getCode() == KeyCode.ENTER) {
        saveButton.requestFocus();
        newCard(null);
        event.consume();            
    }
}

这有效 - 如果保存按钮被聚焦。例如,我单击“保存”按钮,它会保存数据。我按“Enter” - 它再次保存数据。如果我选中所有字段,直到焦点返回到保存按钮,它将保存。但是,例如,如果我的光标在其中一个文本字段上并且我点击“Enter”则没有任何反应。 (newCard是将文本字段数据保存到列表中的方法)。

我在控制器中创建了一个新按钮:

 @FXML private Button saveButton;

将Scene Builder中的fx:id设置为它并尝试使用.requestFocus(),但它似乎不起作用。但它也不会引发错误,因此我不确定我是否只是错误地使用它。

1 个答案:

答案 0 :(得分:0)

MarsAtomic的建议让我思考的方向不同。我已将KeyEvent绑定到Save按钮。但是,一旦我将按钮绑定到AnchorPane本身,它就开始工作了。