На самом деле это должно происходить по умолчанию (по крайней мере, это поведение в JavaFX 11 / Win 10), но вы также можете закрыть Dialog
самостоятельно, вызвав setResult
и close
.
Примерзакрытие по клавишам со стрелками:
// in constructor
passwordField.setOnKeyPressed(evt -> {
if (evt.getCode().isArrowKey()) {
setResult(passwordField.getText());
close();
}
});
Для закрытия по нажатию клавиши ввода используйте onAction
событие PasswordField
:
// in constructor
passwordField.setOnAction(evt -> {
setResult(passwordField.getText());
close();
});
Для более сложныхПоведение resultConverter
, вы также можете использовать его для установки результата, чтобы избежать дублирования кода:
setResult(getResultConverter().call(passwordButtonType));