我正在开发一个数据输入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(),但它似乎不起作用。但它也不会引发错误,因此我不确定我是否只是错误地使用它。
答案 0 :(得分:0)
MarsAtomic的建议让我思考的方向不同。我已将KeyEvent绑定到Save按钮。但是,一旦我将按钮绑定到AnchorPane本身,它就开始工作了。