當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。