<Enter>
ダイアログでdefaultButtonを受け入れ<ESC>
、cancelButtonを実行しようとしています。
次のようなコードがあります。
dialog1 = new Stage(StageStyle.UNDECORATED);
dialog1.initModality(Modality.WINDOW_MODAL);
dialog1.initOwner(primaryStage);
dialog1.setScene(
new Scene(
HBoxBuilder.create().styleClass("modal-dialog").children(
LabelBuilder.create().text("Tells user what to do...").build(),
ButtonBuilder.create().text("Next step").defaultButton(true).onAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent actionEvent) {
// take action and close the dialog1.
// do "OK" actions here...
dialog1.close();
}
}).build(),
ButtonBuilder.create().text("Cancel").cancelButton(true).onAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent actionEvent) {
// abort action and close dialog1.
// do "CANCEL" actions here...
dialog1.close();
}
}).build()
).build()
, Color.TRANSPARENT
)
);
dialog1.getScene().getStylesheets().add(getClass().getResource("ModalDialog.css").toExternalForm());
そして、キーボードを処理するために以下のようなものを追加したいと思います。このような単純なことは可能ですか?
.onAction(new EventHandler<KeyEvent>() {
@Override public void handle(KeyEvent t) {
if (t.getCode() == KeyCode.ENTER) {
// do "OK" actions here
dialog1.close();
} else {
// do "CANCEL" actions here
dialog1.close();
}
}
}).build()
私の問題は、このハンドラーをハングアップする「ノード」を探しましたが、見つからないようです。のようTextInputBuilder
に、またはそのようなもの。また、作成するノードがa であったとしても、構文の正確な形式もわかりません。そのTextInputBuilder
ため、呼び出しがとるべき正確な形式を教えていただければ、それは素晴らしいことです。
私は次のようなものを推測しています:
dialog1.setScene(
new Scene(
HBoxBuilder.create().styleClass("modal-dialog").children(
TextInputFieldBuilder.onAction(new EventHandler<KeyEvent>() {
@Override public void handle(KeyEvent t) {
if (t.getCode() == KeyCode.ENTER) {
// do "OK" actions here
dialog1.close();
} else {
// do "CANCEL" actions here
dialog1.close();
}
}
}).build(),
LabelBuilder.create().text("Tells user what to do...").build(),
// [ ... ]