Alert是JavaFX的一部分,它是Dialog类的子类。警报是一些预定义的对话框,用于向用户显示一些信息。警报本质上是特定的警报类型:
- 确认警报:CONFIRMATION警报类型将“警报”对话框配置为以某种方式显示,以表明该对话框的内容正在寻求用户的确认。
- 警告提示:WARNING警报类型将“警报”对话框配置为以某种方式显示,表明该对话框的内容向用户警告某些事实或操作。
- 无警报:NONE警报类型的作用是不在警报中设置任何默认属性。
- 信息警报:INFORMATION警报类型将Alert对话框配置为以某种方式显示,表明该对话框的内容正在通知用户一条信息。
- 错误警报:ERROR警报类型将Alert对话框配置为以某种表明出现问题的方式出现。
警报包含3个部分:
- 标头
- 内容文字
- 确认按钮
该类的构造函数是:
- Alert(Alert.AlertType a):创建具有指定警报类型的新警报。
- Alert(Alert.AlertType a, String c, ButtonType… b):创建具有指定警报类型,内容和按钮类型的新警报。
常用方法:
方法 | 说明 |
---|---|
getAlertType() | 设置指定的警报类型 |
setAlertType(Alert.AlertType a) | 为警报设置指定的警报类型 |
getButtonTypes() | 返回此Alert实例中当前设置的所有ButtonType实例的ObservableList。 |
setContentText(String s) | 设置警报的上下文文本 |
getContentText() | 返回警报的内容文本。 |
以下示例程序旨在说明Alert类:
- 程序创建不同类型的警报并显示它们:该程序将创建默认类型的警报。需要时,警报将更改为其他警报类型。该程序创建一个按钮,名称为b,b1,b2,b3。这些按钮将在场景内创建,而场景又将托管在舞台内。我们将创建一个标签来显示是否按下按钮。函数setTitle()用于为舞台提供标题。然后创建一个平铺窗格,在其上调用addChildren()方法以将按钮和标签附加到场景内。最后,调用show()方法以显示最终结果。我们将创建一个事件处理程序来处理按钮事件。事件处理程序将使用setOnAction()函数添加到按钮。当按下按钮时,它们将显示与它们关联的相应警报,并将使用函数setAlertType()函数设置相应的alertType。
// Java Program to create alert of different // types and display them import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.*; import javafx.stage.Stage; import javafx.scene.control.Alert.AlertType; public class Alert_1 extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating alerts"); // create a button Button b = new Button("Confirmation alert"); Button b1 = new Button("error alert"); Button b2 = new Button("Information alert"); Button b3 = new Button("Warning alert"); // create a tile pane TilePane r = new TilePane(); // create a alert Alert a = new Alert(AlertType.NONE); // action event EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // set alert type a.setAlertType(AlertType.CONFIRMATION); // show the dialog a.show(); } }; // action event EventHandler<ActionEvent> event1 = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // set alert type a.setAlertType(AlertType.ERROR); // show the dialog a.show(); } }; // action event EventHandler<ActionEvent> event2 = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // set alert type a.setAlertType(AlertType.INFORMATION); // show the dialog a.show(); } }; // action event EventHandler<ActionEvent> event3 = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // set alert type a.setAlertType(AlertType.WARNING); // show the dialog a.show(); } }; // when button is pressed b.setOnAction(event); b1.setOnAction(event1); b2.setOnAction(event2); b3.setOnAction(event3); // add button r.getChildren().add(b); r.getChildren().add(b1); r.getChildren().add(b2); r.getChildren().add(b3); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输出:
- 程序创建警报并设置不同的警报类型和按钮类型,还设置不同的内容文本:该程序将创建默认类型的警报。警报将在需要时更改为其他警报类型。该程序创建一个按钮,名称为b,b1,b2,b3,b4。这些按钮将在场景内创建,而场景又将托管在舞台内。我们将创建一个标签来显示是否按下按钮。函数setTitle()用于为舞台提供标题。然后创建一个平铺窗格,在其上调用addChildren()方法以将按钮和标签附加到场景内。最后,调用show()方法以显示最终结果。我们将创建一个事件处理程序来处理按钮事件。事件处理程序将使用setOnAction()函数添加到按钮。当按下按钮时,它们将显示与它们关联的相应警报,并将使用函数setAlertType()函数设置相应的alertType。还可以使用setContentText()方法更改内容文本。我们将为第四个按钮创建一个默认类型的新警报,并使用alert的构造函数设置按钮类型。
// Java Program to create alert and set // different alert types and button type // and also set different content text import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.*; import javafx.stage.Stage; import javafx.scene.control.Alert.AlertType; public class Alert_2 extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating alerts"); // create a button Button b = new Button("Confirmation alert"); Button b1 = new Button("error alert"); Button b2 = new Button("Information alert"); Button b3 = new Button("Warning alert"); Button b4 = new Button("none alert"); // create a tile pane TilePane r = new TilePane(); // create a alert Alert a = new Alert(AlertType.NONE); // action event EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // set alert type a.setAlertType(AlertType.CONFIRMATION); // set content text a.setContentText("ConfirmationDialog"); // show the dialog a.show(); } }; // action event EventHandler<ActionEvent> event1 = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // set alert type a.setAlertType(AlertType.ERROR); // set content text a.setContentText("error Dialog"); // show the dialog a.show(); } }; // action event EventHandler<ActionEvent> event2 = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // set alert type a.setAlertType(AlertType.INFORMATION); // set content text a.setContentText("Information Dialog"); // show the dialog a.show(); } }; // action event EventHandler<ActionEvent> event3 = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // set alert type a.setAlertType(AlertType.WARNING); // set content text a.setContentText("Warninig Dialog"); // show the dialog a.show(); } }; // action event EventHandler<ActionEvent> event4 = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { Alert a1 = new Alert(AlertType.NONE, "default Dialog",ButtonType.APPLY); // show the dialog a1.show(); } }; // when button is pressed b.setOnAction(event); b1.setOnAction(event1); b2.setOnAction(event2); b3.setOnAction(event3); b4.setOnAction(event4); // add button r.getChildren().add(b); r.getChildren().add(b1); r.getChildren().add(b2); r.getChildren().add(b3); r.getChildren().add(b4); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输出:
注意:以上程序可能无法在在线编辑器中运行,请使用离线编译器。
参考:
- https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Alert.html
- https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Alert.AlertType.html
相关用法
- JavaFX 类 Box用法及代码示例
- JavaFX 类 Arc用法及代码示例
- JavaFX 类 QuadCurve用法及代码示例
- JavaFX 类 ColorPicker用法及代码示例
- JavaFX 类 Sphere用法及代码示例
- JavaFX 类 RadioButton用法及代码示例
- JavaFX 类 CubicCurve用法及代码示例
- JavaFX 类 Line用法及代码示例
- JavaFX 类 ContextMenu用法及代码示例
- JavaFX 类 PointLight用法及代码示例
- JavaFX 类 DatePicker用法及代码示例
- JavaFX 类 CheckMenuItem用法及代码示例
- JavaFX 类 Polyline用法及代码示例
- JavaFX 类 Ellipse用法及代码示例
- JavaFX 类 ComboBox用法及代码示例
注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | Alert with examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。