預設和取消按鈕
Button
API 提供了一種為按鈕分配常用鍵盤快捷鍵的簡便方法,無需訪問分配給 Scene
的加速器列表或顯式偵聽鍵事件。即,提供了兩種便利方法:setDefaultButton
和 setCancelButton
:
-
將
setDefaultButton
設定為true
將導致Button
每次收到KeyCode.ENTER
事件時觸發。 -
將
setCancelButton
設定為true
將導致Button
每次收到KeyCode.ESCAPE
事件時都會觸發。
下面的示例建立一個 Scene
,其中有兩個按鈕,當按下 enter 或 escape 鍵時會觸發這些按鈕,無論它們是否聚焦。
FlowPane root = new FlowPane();
Button okButton = new Button("OK");
okButton.setDefaultButton(true);
okButton.setOnAction(e -> {
System.out.println("OK clicked.");
});
Button cancelButton = new Button("Cancel");
cancelButton.setCancelButton(true);
cancelButton.setOnAction(e -> {
System.out.println("Cancel clicked.");
});
root.getChildren().addAll(okButton, cancelButton);
Scene scene = new Scene(root);
如果這些 KeyEvents
被任何父級 Node
使用,則上面的程式碼將不起作用:
scene.setOnKeyPressed(e -> {
e.consume();
});