我的应用程序中有大约50个按钮。对于我用这种方式创建处理程序的所有按钮:
@FXML
protected void handleFooButtonActionEvent(ActionEvent actionEvent) {
...
}
这样用户可以使用鼠标左键或空格键按下按钮。但是,通常的做法(据我所知)允许用户使用Enter键按下按钮。是否可以使所有具有ActionEvent处理程序(见上文)的按钮也处理JavaFX中的Enter键,例如,如果我们引用Stage stage
,Scene scene
或Parent root
?
答案 0 :(得分:2)
您可以配置场景来执行此操作:
var listitems= lvTest.Items.Cast<ListViewItem>();
您也可以使用事件处理程序执行此操作:
scene.getAccelerators().put(
KeyCombination.valueOf("Enter"), () -> {
Node focusOwner = scene.getFocusOwner();
if (focusOwner instanceof Button) {
((Button) focusOwner).fire();
}
});
通常我同意James_D的说法,改变按钮的标准行为并不是一个好主意,但我发现所有GTK应用程序都允许Enter按下按钮,就像你提到的Firefox一样。< / p>