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