JavaFX - 警报框



警报框指的是出现在屏幕上用于告知用户错误或任何事件的弹出窗口或对话框。警报框的信息不仅仅限于错误消息,它可以是任何消息,包括简单的“你好”。例如,下图显示了关于文件夹删除的通知 -

JavaFX Alert

JavaFX 中的警报框

在 JavaFX 中,警报框由名为 Alert 的类表示。此类属于包 javafx.scene.control。通过实例化此类,我们可以在 JavaFX 中创建警报框。此外,我们需要将 Alert.AlertType 枚举值传递给构造函数。此值决定对话框的默认属性,例如标题、标题栏、图形和按钮。Alert 类的构造函数如下所示:

  • Alert(Alert.AlertType typeOfalert) − 用于使用指定的警报类型构造警报框。

  • Alert(Alert.AlertType typeOfalert, String str, ButtonType buttons) − 使用指定的警报类型、预定义文本和按钮类型构造警报框。

如何在 JavaFX 中创建警报框?

请按照以下步骤在 JavaFX 中创建警报框。

步骤 1:实例化 Alert 类

要创建警报框,请实例化 Alert 类并将 Alert.AlertType 枚举值作为参数值传递给其构造函数,如下面的代码所示:

// Creating an Alert
Alert alert = new Alert(AlertType.INFORMATION);

步骤 2:设置警报框标题

使用 setTitle() 方法为警报框设置合适的标题,如下面的代码块所示:

// setting the title of alert box
alert.setTitle("Alert Box");

步骤 3:设置警报框标题栏文本

setHeaderText() 方法用于设置警报框的标题栏文本。我们使用下面的代码块将标题栏文本设置为“null”:

// setting header text 
alert.setHeaderText(null);

步骤 4:设置警报框内容文本

要设置警报框的内容文本,请使用 setContentText() 方法。它接受 String 类型的文本,如下面的代码所示:

// setting content text
alert.setContentText("Showing an Alert in JavaFX!");

步骤 5:启动应用程序

创建警报框并设置其属性后,创建一个按钮,单击该按钮将显示警报框。接下来,通过将 Button 对象传递给其构造函数来定义布局面板,例如 VBox 和 HBox。然后,设置 SceneStage。最后,使用 launch() 方法启动应用程序。

示例

下面的 JavaFX 程序演示了如何在 JavaFX 应用程序中生成警报框。将此代码保存在名为 ShowAlert.java 的文件中。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.geometry.Pos;
public class ShowAlert extends Application {
   @Override
   public void start(Stage stage) {
      // Creating a Label
      Label label = new Label("On clicking the below button, it will display an alert....");
      // Creating a Button
      Button button = new Button("Show Alert");
      // Creating an Alert
      Alert alert = new Alert(AlertType.INFORMATION);
      alert.setTitle("Alert Box");
      alert.setHeaderText(null);
      alert.setContentText("Showing an Alert in JavaFX!");
      // Setting the Button's action
      button.setOnAction(e -> alert.showAndWait());
      // Create a VBox to hold the Label and Button
      VBox vbox = new VBox(label, button);
      vbox.setAlignment(Pos.CENTER); 
      // Create a Scene with the VBox as its root node
      Scene scene = new Scene(vbox, 400, 300);
      // Set the Title of the Stage
      stage.setTitle("Alert in JavaFX");
      // Set the Scene of the Stage
      stage.setScene(scene);
      // Display the Stage
      stage.show();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

要从命令提示符编译和执行保存的 Java 文件,请使用以下命令:

javac --module-path %PATH_TO_FX% --add-modules javafx.controls ShowAlert.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls ShowAlert

输出

执行上述代码时,将生成以下输出。

Alert Output

JavaFX 中的警报框类型

Alert 类是 Dialog 类的子类,它支持许多预构建的对话框(或警报框)类型,即确认、警告、信息、错误和无。通过更改 Alert.AlertType 枚举的值,我们可以使用这些不同的警报框类型。

示例

在下面的示例中,我们将演示 JavaFX 中的警报框类型。将此代码保存在名为 JavafxAlert.java 的文件中。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import javafx.geometry.Pos;
import javafx.geometry.Insets;
public class JavafxAlert extends Application {
   @Override
   public void start(Stage stage) {
      // Creating a Label
      Label label = new Label("Types of alert in JavaFX...");
      // Creating Buttons
      Button cnfrmButtn = new Button("Confirm");
      Button infrmButtn = new Button("Inform");
      Button warngButtn = new Button("Warning");
      Button errorButtn = new Button("Error");
      // Creating information Alert and setting Button's action
      Alert infrmAlert = new Alert(AlertType.INFORMATION);
      infrmAlert.setContentText("It is an Information Alert!");
      infrmButtn.setOnAction(e -> infrmAlert.showAndWait());
      // Creating confirmation Alert and setting Button's action
      Alert cnfrmAlert = new Alert(AlertType.CONFIRMATION);
      cnfrmAlert.setContentText("It is a Confirmation Alert!");
      cnfrmButtn.setOnAction(e -> cnfrmAlert.showAndWait());
      // Creating warning Alert and setting Button's action
      Alert warngAlert = new Alert(AlertType.WARNING);
      warngAlert.setContentText("It is a Warning Alert!");
      warngButtn.setOnAction(e -> warngAlert.showAndWait());
      // Creating error Alert and setting Button's action
      Alert errorAlert = new Alert(AlertType.ERROR);
      errorAlert.setContentText("It is an Error Alert!");
      errorButtn.setOnAction(e -> errorAlert.showAndWait());
      // Create a HBox to hold the Buttons
      HBox box = new HBox(cnfrmButtn, infrmButtn, warngButtn, errorButtn);
      box.setAlignment(Pos.CENTER); 
      box.setPadding(new Insets(15));
      box.setSpacing(10);
      // Create a VBox to hold the Label and Button
      VBox vbox = new VBox(label, box);
      vbox.setAlignment(Pos.CENTER); 
      // Create a Scene with the VBox as its root node
      Scene scene = new Scene(vbox, 400, 300);
      // Set the Title of the Stage
      stage.setTitle("Alert in JavaFX");
      // Set the Scene of the Stage
      stage.setScene(scene);
      // Display the Stage
      stage.show();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

使用以下命令从命令提示符编译和执行保存的 Java 文件:

javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxAlert.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxAlert

输出

执行上述代码后,它将生成一个显示四个按钮的窗口。每个按钮都与不同的警报框相关联。

Alert Output2
广告