JavaFX之Stage

Stage(舞台),它代表了一个顶级窗口,是JavaFX应用程序的主要容器。Stage可以包含多个场景(Scene),每个场景可以包含各种用户界面元素(如按钮、文本框等)。Stage提供了许多方法和属性,用于设置窗口的外观、行为和交互。

 举例:

package com.example.demo1;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

import java.util.Optional;

public class HelloApplication extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        // 创建按钮
        Button button = new Button("Hello World");
        button.setLayoutX(200);
        button.setLayoutY(200);

        // 创建布局
        AnchorPane pane = new AnchorPane();
        pane.getChildren().add(button);

        // 创建场景
        Scene scene = new Scene(pane, 500, 500);

        // 设置场景到舞台
        primaryStage.setScene(scene);
        primaryStage.setTitle("Hello"); // 设置舞台标题
        primaryStage.getIcons().add(new Image("F:\\myCode\\java\\javaFX\\0910\\demo1\\src\\main\\resources\\image\\logo.png")); // 设置舞台图标,图标文件位于 "image/logo.png"
        primaryStage.setResizable(false); // 设置舞台不可调整大小

        // 防止隐式退出
        Platform.setImplicitExit(false);

        // 处理窗口关闭事件
        primaryStage.setOnCloseRequest(event -> {
            event.consume(); // 阻止默认的窗口关闭操作

            // 创建一个确认对话框
            Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
            alert.setTitle("退出程序");
            alert.setHeaderText(null);
            alert.setContentText("您是否需要退出程序");

            // 显示对话框,并等待用户响应
            Optional result = alert.showAndWait();

            // 如果用户点击了确认按钮,则退出程序
            if (result.get() == ButtonType.OK) {
                Platform.exit(); // 退出 JavaFX 应用程序
            }
        });

        // 显示舞台
        primaryStage.show();
    }
}

以下是代码的主要功能和作用:

  1. HelloApplication 类继承了 Application 类,并重写了 start() 方法,该方法是 JavaFX 应用程序的入口点。

  2. main() 方法是应用程序的启动点,它调用 launch() 方法来启动 JavaFX 应用程序。

  3. 在 start() 方法中:

    • 创建一个按钮,并设置按钮的文本和位置。
    • 创建一个 AnchorPane 布局,并将按钮添加到布局中。
    • 创建一个场景,将布局作为场景的根节点,并指定场景的大小为 500x500 像素。
    • 将场景设置到舞台(主窗口)中。
    • 设置舞台的标题为 "Hello"。
    • 添加一个图标到舞台,图标文件的路径是 "F:\myCode\java\javaFX\0910\demo1\src\main\resources\image\logo.png"。
    • 设置舞台不可调整大小。
    • 调用 Platform.setImplicitExit(false) 来防止隐式退出,即当所有窗口关闭时,JavaFX 应用程序不会自动退出。
  4. primaryStage.setOnCloseRequest() 方法设置了窗口关闭事件的处理逻辑。当用户尝试关闭窗口时,会触发这个事件。在事件处理程序中:

    • 调用 event.consume() 阻止默认的窗口关闭操作。
    • 创建一个确认对话框(Alert),标题为 "退出程序",内容为 "您是否需要退出程序"。
    • 显示对话框,并等待用户响应。
    • 如果用户点击了确认按钮(ButtonType.OK),则调用 Platform.exit() 退出 JavaFX 应用程序。
  5. 最后,调用 primaryStage.show() 方法显示舞台(窗口)。
    JavaFX之Stage_第1张图片

你可能感兴趣的:(JavaFX,前端)