Как и во встроенном элементе управления JavaFX Alert
, неявный тип элемента управления Alert
Gluon такой же: встроенный в JavaFX ButtonType
, поэтому, если вы нажмете кнопку OK, он вернет ButtonType.OK
.
Как вы можете видеть на Alert
JavaDoc , элемент управления имеет одну или две кнопки по умолчанию: кнопку OK
для всех из них и Cancel
кнопка для подтверждения подтверждения.Каждая из этих кнопок имеет по умолчанию результат ButtonType.OK
и ButtonType.CANCEL
.
Так что это работает для обоих Alert
элементов управления:
alert.showAndWait().ifPresent(result -> {
if (result == ButtonType.OK) {
// do something;
}
});
Одна из вещей, которую вы заметите с обоимиКнопки OK и Отмена: оповещение будет отклонено, поэтому вам не нужно делать это.
Вы также можете предоставить свои пользовательские кнопки.Тогда вам нужно позаботиться о том, чтобы позвонить hide()
:
final Button myYesButton = new Button("Yes");
myYesButton.setOnAction(event -> {
alert.setResult(ButtonType.YES);
alert.hide();
});
alert.getButtons().add(myYesButton);
О setOnHidden
, см. Javadoc .Требуется LifecycleEvent
:
alert.setOnHidden((LifecycleEvent event) -> System.out.println("alert hidden"));
, но вы можете использовать только:
alert.setOnHidden(event -> System.out.println("alert hidden"));
Наконец, убедитесь, что вы импортируете правильный элемент управления:
import com.gluonhq.charm.glisten.control.Alert;
...
Alert alert = new Alert(javafx.scene.control.Alert.AlertType.ERROR);