Класс Alert
- Все реализуемые интерфейсы:
EventTarget
public class Alert
extends Dialog<ButtonType> Dialog и предоставляет поддержку ряда предварительно созданных типов диалоговых окон, которые можно легко показать пользователю для запроса ответа. Поэтому для многих пользователей класс Alert является наиболее подходящим классом для их потребностей (по сравнению с использованием Dialog напрямую). В качестве альтернативы, пользователи, которые хотят запросить у пользователя ввод текста или сделать выбор из списка опций, могут лучше воспользоваться TextInputDialog и ChoiceDialog соответственно. При создании экземпляра Alert пользователи должны передать значение перечисления Alert.AlertType. Именно путем передачи этого значения экземпляр Alert будет правильно настроен (путем установки значений по умолчанию для многих свойств Dialog, включая title, header и graphic, а также по умолчанию buttons, ожидаемые в диалоговом окне данного типа.
Для создания (но пока не отображения) экземпляра Alert используйте код, подобный следующему:
Alert alert = new Alert(AlertType.CONFIRMATION, "Are you sure you want to format your system?"); После создания экземпляра Alert необходимо его отобразить. Чаще всего всплывающие подсказки (и диалоговые окна в целом) отображаются в модальном и блокирующем режиме. «Модальный» означает, что диалоговое окно предотвращает взаимодействие пользователя с основным приложением во время отображения, а «блокирующий» означает, что выполнение кода останавливается в тот момент, когда диалоговое окно отображается. Это означает, что вы можете отобразить диалоговое окно, дождаться ответа пользователя и затем продолжить выполнение кода, непосредственно следующего за вызовом show, что позволяет разработчикам сразу обработать пользовательский ввод из диалогового окна (если это необходимо).
Диалоговые окна JavaFX по умолчанию модальные (вы можете изменить это с помощью API Dialog.initModality(javafx.stage.Modality)). Чтобы указать, хотите ли вы блокирующие или неблокирующие диалоговые окна, разработчики просто вызывают Dialog.showAndWait() или Dialog.show() (соответственно). По умолчанию большинство разработчиков должны использовать Dialog.showAndWait(), учитывая простоту кодирования в таких ситуациях. Ниже приведены три фрагмента кода, демонстрирующие три равноценных способа отображения диалогового окна Alert, указанного выше:
Вариант 1: «Традиционный» подход
Optional<ButtonType> result = alert.showAndWait();
if (result.isPresent() && result.get() == ButtonType.OK) {
formatSystem();
} Вариант 2: Традиционный + Необязательный подход
alert.showAndWait().ifPresent(response -> {
if (response == ButtonType.OK) {
formatSystem();
}
}); Вариант 3: Полностью лямбда-подход
alert.showAndWait()
.filter(response -> response == ButtonType.OK)
.ifPresent(response -> formatSystem());
Нет лучшего или худшего варианта из трех перечисленных выше, поэтому разработчикам рекомендуется работать в соответствии со своими предпочтениями в стиле написания кода. Цель показанного выше кода — помочь разработчикам познакомиться с API Optional, который является новым в Java 8 и может быть незнаком многим разработчикам.
- С:
- JavaFX 8u40
- См. также:
-
Dialog,Alert.AlertType,TextInputDialog,ChoiceDialog
Сводка свойств
| Тип | Свойство | Описание |
|---|---|---|
ObjectProperty<Alert.AlertType> | alertType | При создании экземпляра Alert пользователи должны передать значение перечисления Alert.AlertType. |
Свойства, объявленные в классе javafx.scene.control.Dialog
contentText, dialogPane, graphic, headerText, height, onCloseRequest, onHidden, onHiding, onShowing, onShown, resizable, resultConverter, result, showing, title, width, x, y
Сводка вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class | Alert.AlertType | Перечисление, содержащее доступные предварительно созданные типы alert, которые класс Alert может использовать для предварительной подготовки различных свойств. |
Сводка конструкторов
| Конструктор | Описание |
|---|---|
Alert(Alert.AlertType alertType) | Создает alert с заданным AlertType (обратитесь к документации Alert.AlertType для уточнения наиболее подходящего). |
Alert(Alert.AlertType alertType,
String contentText,
ButtonType... buttons) | Создает alert с заданным contentText, ButtonTypes и AlertType (обратитесь к документации Alert.AlertType для уточнения наиболее подходящего). |
Сводка методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ObjectProperty<Alert.AlertType> | alertTypeProperty() | При создании экземпляра Alert пользователи должны передать значение перечисления Alert.AlertType. |
Alert.AlertType | getAlertType() | Возвращает значение свойства alertType. |
ObservableList<ButtonType> | getButtonTypes() | Возвращает ObservableList всех экземпляров ButtonType, которые в настоящее время установлены в этом экземпляре Alert. |
void | setAlertType(Alert.AlertType alertType) | Устанавливает значение свойства alertType. |
Методы, объявленные в классе javafx.scene.control.Dialog
close, contentTextProperty, dialogPaneProperty, getContentText, getDialogPane, getGraphic, getHeaderText, getHeight, getModality, getOnCloseRequest, getOnHidden, getOnHiding, getOnShowing, getOnShown, getOwner, getResult, getResultConverter, getTitle, getWidth, getX, getY, graphicProperty, headerTextProperty, heightProperty, hide, initModality, initOwner, initStyle, isResizable, isShowing, onCloseRequestProperty, onHiddenProperty, onHidingProperty, onShowingProperty, onShownProperty, resizableProperty, resultConverterProperty, resultProperty, setContentText, setDialogPane, setGraphic, setHeaderText, setHeight, setOnCloseRequest, setOnHidden, setOnHiding, setOnShowing, setOnShown, setResizable, setResult, setResultConverter, setTitle, setWidth, setX, setY, show, showAndWait, showingProperty, titleProperty, widthProperty, xProperty, yProperty
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе javafx.event.EventTarget
buildEventDispatchChain
Подробное описание свойств
alertType
public final ObjectProperty<Alert.AlertType> alertTypeProperty
Alert.AlertType. Именно передача этого значения позволяет экземпляру Alert корректно настроить себя (установив значения по умолчанию для многих свойств Dialog, включая title, header и graphic, а также значения по умолчанию для buttons, ожидаемые в диалоговом окне заданного типа).- См. также:
-
getAlertType(),setAlertType(Alert.AlertType)
Подробное описание конструкторов
Alert
public Alert(Alert.AlertType alertType)
Alert.AlertType для уточнения, какой тип наиболее подходит). Передавая AlertType, устанавливаются значения по умолчанию для свойств title, headerText и graphic, а также соответствующие buttons. После создания объекта Alert разработчики могут изменять его значения по своему усмотрению.
Важно отметить, что свойство, у которого нет значения по умолчанию и которое, следовательно, должен установить разработчик, это свойство content text (или, как альтернатива, разработчик может вызвать alert.getDialogPane().setContent(Node), если ему нужно более сложное предупреждение). Если свойства contentText (или content) не установлены, пользователи не получат полезной информации.
- Параметры:
-
alertType- предупреждение с заданным типом AlertType
Alert
public Alert(Alert.AlertType alertType, String contentText, ButtonType... buttons)
Alert.AlertType для уточнения, какой тип наиболее подходит). Передавая переменное число аргументов ButtonType, разработчик напрямую переопределяет стандартные кнопки, которые будут отображаться в диалоговом окне, заменяя предварительно определенные кнопки на указанные в массиве varargs.
Передавая AlertType, устанавливаются значения по умолчанию для свойств title, headerText и graphic. После создания объекта Alert разработчики могут изменять его значения по своему усмотрению.
- Параметры:
-
alertType- тип предупреждения -
contentText- текст содержимого -
buttons- типы кнопок
Подробное описание методов
getAlertType
public final Alert.AlertType getAlertType()
- Описание свойства:
- При создании экземпляра Alert пользователи должны передать значение перечисления
Alert.AlertType. Именно передача этого значения позволяет экземпляру Alert корректно настроить себя (установив значения по умолчанию для многих свойствDialog, включаяtitle,headerиgraphic, а также значения по умолчанию дляbuttons, ожидаемые в диалоговом окне заданного типа).
setAlertType
public final void setAlertType(Alert.AlertType alertType)
- Описание свойства:
- При создании экземпляра Alert пользователи должны передать значение перечисления
Alert.AlertType. Именно передача этого значения позволяет экземпляру Alert корректно настроить себя (установив значения по умолчанию для многих свойствDialog, включаяtitle,headerиgraphic, а также значения по умолчанию дляbuttons, ожидаемые в диалоговом окне заданного типа).
alertTypeProperty
public final ObjectProperty<Alert.AlertType> alertTypeProperty()
Alert.AlertType. Именно передача этого значения позволяет экземпляру Alert корректно настроить себя (установив значения по умолчанию для многих свойств Dialog, включая title, header и graphic, а также значения по умолчанию для buttons, ожидаемые в диалоговом окне заданного типа).- См. также:
-
getAlertType(),setAlertType(Alert.AlertType)
getButtonTypes
public final ObservableList<ButtonType> getButtonTypes()
ObservableList всех экземпляров ButtonType, которые в настоящее время установлены в этом экземпляре Alert. Тип кнопки может быть одним из предварительно определенных типов (например, ButtonType.OK), или пользовательским типом (созданным с помощью конструкторов ButtonType(String) или ButtonType(String, javafx.scene.control.ButtonBar.ButtonData)). Читатели должны обратиться к документации класса ButtonType для получения дополнительной информации, но в общих чертах, каждый экземпляр ButtonType преобразуется в узел (хотя чаще всего в Button) через метод (переопределяемый) DialogPane.createButton(ButtonType) в классе DialogPane.
- Возвращает:
- список
ObservableListвсех экземпляровButtonType, которые в настоящее время установлены в этом экземпляре Alert
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.