当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaFX 类 Alert用法及代码示例


Alert是JavaFX的一部分,它是Dialog类的子类。警报是一些预定义的对话框,用于向用户显示一些信息。警报本质上是特定的警报类型:

  • 确认警报:CONFIRMATION警报类型将“警报”对话框配置为以某种方式显示,以表明该对话框的内容正在寻求用户的确认。
  • 警告提示:WARNING警报类型将“警报”对话框配置为以某种方式显示,表明该对话框的内容向用户警告某些事实或操作。
  • 无警报:NONE警报类型的作用是不在警报中设置任何默认属性。
  • 信息警报:INFORMATION警报类型将Alert对话框配置为以某种方式显示,表明该对话框的内容正在通知用户一条信息。
  • 错误警报:ERROR警报类型将Alert对话框配置为以某种表明出现问题的方式出现。

警报包含3个部分:

  • 标头
  • 内容文字
  • 确认按钮

该类的构造函数是:


  1. Alert(Alert.AlertType a):创建具有指定警报类型的新警报。
  2. Alert(Alert.AlertType a, String c, ButtonType… b):创建具有指定警报类型,内容和按钮类型的新警报。

常用方法:

方法 说明
getAlertType() 设置指定的警报类型
setAlertType(Alert.AlertType a) 为警报设置指定的警报类型
getButtonTypes() 返回此Alert实例中当前设置的所有ButtonType实例的ObservableList。
setContentText(String s) 设置警报的上下文文本
getContentText() 返回警报的内容文本。

以下示例程序旨在说明Alert类:

  1. 程序创建不同类型的警报并显示它们:该程序将创建默认类型的警报。需要时,警报将更改为其他警报类型。该程序创建一个按钮,名称为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); 
        } 
    }

    输出:

  2. 程序创建警报并设置不同的警报类型和按钮类型,还设置不同的内容文本:该程序将创建默认类型的警报。警报将在需要时更改为其他警报类型。该程序创建一个按钮,名称为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); 
        } 
    }

    输出:

  3. 注意:以上程序可能无法在在线编辑器中运行,请使用离线编译器。

    参考:



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | Alert with examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。