- java.lang.Object
-
- javafx.scene.control.Dialog<ButtonType>
-
- javafx.scene.control.Alert
-
- Все реализованные интерфейсы:
EventTarget
public class Alert extends Dialog<ButtonType>
Класс Alert наследуется от класса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 classAlert.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.AlertTypegetAlertType()Возвращает значение свойства alertType.ObservableList<ButtonType>getButtonTypes()ВозвращаетObservableListвсехButtonTypeэкземпляров, которые в данный момент установлены внутри этого экземпляра Alert.voidsetAlertType(Alert.AlertType alertType)Устанавливает значение свойства alertType.-
Наследованные методы от класса javafx.scene.control.Dialog
buildEventDispatchChain, 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
-
-
Подробности свойства
-
alertType
public final ObjectProperty<Alert.AlertType> alertTypeProperty
При создании экземпляра Alert пользователи должны передать значение перечисленияAlert.AlertType. Именно передача этого значения позволяет экземпляру Alert правильно настроить себя (установив значения по умолчанию для многих свойствDialog, включаяtitle,headerиgraphic, а также значения по умолчанию дляbuttons, ожидаемые в диалоговом окне данного типа).- См. также:
-
getAlertType(),setAlertType(Alert.AlertType)
-
-
Подробности конструктора
-
Alert
public Alert(Alert.AlertType alertType)
Создаёт диалоговое окно с типом Alert (см. документациюAlert.AlertType, чтобы понять, какой тип наиболее подходит).Передавая AlertType, устанавливаются значения по умолчанию для свойств
title,headerTextиgraphic, а также устанавливаются соответствующие значения дляbuttons. После создания экземпляра Alert разработчики могут изменять значения по своему усмотрению.Важно отметить, что свойство, для которого не установлено значение по умолчанию, и которое поэтому необходимо установить разработчику, это свойство
content text(или, как альтернатива, разработчик может вызватьalert.getDialogPane().setContent(Node), если ему нужно более сложное диалоговое окно). Если свойства contentText (или content) не установлены, пользователи не увидят полезной информации.- Параметры:
-
alertType- диалоговое окно с указанным типом Alert
-
Alert
public Alert(Alert.AlertType alertType, String contentText, ButtonType... buttons)
Создаёт диалоговое окно с заданным содержанием, типами кнопок и типом Alert (см. документациюAlert.AlertType, чтобы понять, какой тип наиболее подходит).Передавая переменное количество аргументов ButtonType, разработчик непосредственно переопределяет кнопки, которые будут отображаться в диалоговом окне, заменяя предварительно определённые кнопки на те, которые указаны в массиве varargs.
Передавая AlertType, устанавливаются значения по умолчанию для свойств
title,headerTextиgraphic. После создания экземпляра Alert разработчики могут изменять значения по своему усмотрению.- Параметры:
-
alertType- тип диалогового окна -
contentText- текст содержания -
buttons- типы кнопок
-
-
Подробности метода
-
getAlertType
public final Alert.AlertType getAlertType()
Возвращает значение свойства alertType.- Описание свойства:
- При создании экземпляра Alert пользователи должны передать значение перечисления
Alert.AlertType. Именно передача этого значения позволяет экземпляру Alert правильно настроить себя (установив значения по умолчанию для многих свойствDialog, включаяtitle,headerиgraphic, а также значения по умолчанию дляbuttons, ожидаемые в диалоговом окне данного типа).
-
setAlertType
public final void setAlertType(Alert.AlertType alertType)
Устанавливает значение свойства alertType.- Описание свойства:
- При создании экземпляра Alert пользователи должны передать значение перечисления
Alert.AlertType. Именно передача этого значения позволяет экземпляру Alert правильно настроить себя (установив значения по умолчанию для многих свойствDialog, включаяtitle,headerиgraphic, а также значения по умолчанию дляbuttons, ожидаемые в диалоговом окне данного типа).
-
alertTypeProperty
public final ObjectProperty<Alert.AlertType> alertTypeProperty()
При создании экземпляра Alert пользователи должны передать значение перечисленияAlert.AlertType. Именно передача этого значения позволяет экземпляру Alert правильно настроить себя (установив значения по умолчанию для многих свойствDialog, включаяtitle,headerиgraphic, а также значения по умолчанию дляbuttons, ожидаемые в диалоговом окне данного типа).- См. также:
-
getAlertType(),setAlertType(Alert.AlertType)
-
getButtonTypes
public final ObservableList<ButtonType> getButtonTypes()
ВозвращаетObservableListвсехButtonTypeэкземпляров, которые в данный момент установлены в этом экземпляре Alert. ButtonType может быть одним из предварительно определённых типов (например,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.