- java.lang.Object
-
- javafx.scene.control.Dialog<ButtonType>
-
- javafx.scene.control.Alert
-
- All Implemented Interfaces:
-
EventTarget
public class Alert extends Dialog<ButtonType>
Alert类对Dialog
类进行子类化,并为许多预构建的对话框类型提供支持,可以轻松向用户显示提示响应。 因此,对于许多用户来说,Alert类是最适合他们需要的类(而不是直接使用Dialog
)。 或者,希望通过使用TextInputDialog
和ChoiceDialog
来更好地服务于想要提示用户进行文本输入或从选项列表中进行选择的用户。创建Alert实例时,用户必须传入一个
Alert.AlertType
枚举值。 它是通过在该值警报实例将自身适当配置(由许多的设置默认值Dialog
个属性,包括title
,header
,并graphic
,以及默认buttons
预计,在给定的一个对话框,类型。要实例化(但尚未显示)警报,只需使用以下代码:
Alert alert = new Alert(AlertType.CONFIRMATION, "Are you sure you want to format your system?");
一旦警报被实例化,我们必须显示。 通常,警报(和一般对话框)以模态和阻止的方式显示。 'Modal'意味着该对话框可以防止用户在显示时与所拥有的应用程序进行交互,而'blocking'意味着代码执行在显示对话框的时候停止。 这意味着您可以显示一个对话框,等待用户响应,然后继续运行直接在show调用之后的代码,使开发人员能够立即处理来自对话框的用户输入(如果相关)。
默认情况下,JavaFX对话框是模态的(您可以通过
Dialog.initModality(javafx.stage.Modality)
API更改此对话框 )。 要指定是否要阻止或不阻止对话框,开发人员只需选择分别调用Dialog.showAndWait()
或Dialog.show()
。 默认情况下,大多数开发人员应该选择使用Dialog.showAndWait()
,因为在这些情况下易于编码。 下面显示的是三个代码片段,显示了三个同样有效的方式来显示上面指定的“警报”对话框:选项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:完全lambda方法
alert.showAndWait() .filter(response -> response == ButtonType.OK) .ifPresent(response -> formatSystem());
上面列出的三个选项没有更好或更差的选择,所以鼓励开发人员自己设计风格偏好。 显示上述内容的目的是帮助开发人员介绍API6.0685923290699 API,这是Java 8中的新增功能,可能是许多开发人员的外部 API。
- 从以下版本开始:
- JavaFX 8u40
- 另请参见:
-
Dialog
,Alert.AlertType
,TextInputDialog
,ChoiceDialog
-
-
Property Summary
Properties Type Property 描述 ObjectProperty<Alert.AlertType>
alertType
创建Alert实例时,用户必须传入一个Alert.AlertType
枚举值。-
Properties inherited from class javafx.scene.control.Dialog
contentText, dialogPane, graphic, headerText, height, onCloseRequest, onHidden, onHiding, onShowing, onShown, resizable, resultConverter, result, showing, title, width, x, y
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
Alert.AlertType
-
构造方法摘要
构造方法 Constructor 描述 Alert(Alert.AlertType alertType)
使用给定的AlertType创建警报(参考Alert.AlertType
文档,了解哪一个是最合适的)。Alert(Alert.AlertType alertType, String contentText, ButtonType... buttons)
使用给定的contentText,ButtonTypes和AlertType创建警报(参考Alert.AlertType
文档了解哪一个是最合适的)。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 ObjectProperty<Alert.AlertType>
alertTypeProperty()
创建Alert实例时,用户必须传入一个Alert.AlertType
枚举值。Alert.AlertType
getAlertType()
获取属性alertType的值。ObservableList<ButtonType>
getButtonTypes()
返回此Alert实例当前设置的所有ButtonType
个实例中的ObservableList
。void
setAlertType(Alert.AlertType alertType)
设置属性alertType的值。-
Methods inherited from class 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
-
-
-
-
Property Detail
-
alertType
public final ObjectProperty<Alert.AlertType> alertTypeProperty
-
-
构造方法详细信息
-
Alert
public Alert(Alert.AlertType alertType)
使用给定的AlertType创建警报(请参阅Alert.AlertType
文档以了解哪一个是最合适的)。通过传递一个警告类型,默认值
title
,headerText
,并graphic
属性设置,以及相关buttons
正在安装。 一旦Alert被实例化,开发人员就可以根据需要修改警报的值。重要的是要注意,没有默认值设置的属性,因此开发人员必须设置的属性是
content text
属性(或者,如果他们想要更复杂的警报,开发人员可能会调用alert.getDialogPane().setContent(Node)
)。 如果未设置contentText(或内容)属性,则没有向最终用户显示有用的信息。- 参数
-
alertType
- 给定AlertType的警报
-
Alert
public Alert(Alert.AlertType alertType, String contentText, ButtonType... buttons)
使用给定的contentText,ButtonTypes和AlertType创建警报(请参阅Alert.AlertType
文档,了解哪一个是最合适的)。通过传递可变数量的ButtonType参数,开发人员直接覆盖将在对话框中显示的默认按钮,用varargs数组中指定的任何内容替换预定义的按钮。
通过使在警告类型,默认值
title
,headerText
,和graphic
属性被设置。 一旦Alert被实例化,开发人员就可以根据需要修改警报的值。- 参数
-
alertType
- 警报类型 -
contentText
- 内容文本 -
buttons
- 按钮类型
-
-
方法详细信息
-
getAlertType
public final Alert.AlertType getAlertType()
获取属性alertType的值。
-
setAlertType
public final void setAlertType(Alert.AlertType alertType)
设置属性alertType的值。
-
alertTypeProperty
public final ObjectProperty<Alert.AlertType> alertTypeProperty()
-
getButtonTypes
public final ObservableList<ButtonType> getButtonTypes()
返回当前在此Alert实例中设置的所有ButtonType
个实例中的ObservableList
。 ButtonType可以是预定义类型之一(例如ButtonType.OK
),也可以是自定义类型(通过ButtonType(String)
或ButtonType(String, javafx.scene.control.ButtonBar.ButtonData)
构造函数创建)。读者应参考
ButtonType
类文档以获得更多的细节,但是在较高的水平,每个按钮类型实例被转换为节点(虽然最常用的是Button
)经由(重写)DialogPane.createButton(ButtonType)
方法上DialogPane
。- 结果
-
一个
ObservableList
所有ButtonType
实例当前设置此警报实例内部
-
-