JavaFX之Stage

简介: 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<ButtonType> 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() 方法显示舞台(窗口)。


目录
相关文章
|
10天前
|
XML IDE Java
JavaFX 教程
JavaFX 教程
19 1
|
2天前
JavaFx之Hello, World!
JavaFx之Hello, World!
23 0
QGS
|
1月前
|
Android开发
JavaFX场景入门(上)
JavaFX场景入门
QGS
55 0
|
安全 Java
javaFx 安全开发 三
javaFx 安全开发
|
IDE Java 开发工具
|
Oracle Java 关系型数据库
JavaFX Scene Builder 下载安装
Scene Builder 是创建漂亮的用户界面,并将您的设计转化为交互式原型。Scene Builder通过创建可以直接在JavaFX应用程序中使用的用户界面,缩小了设计人员和开发人员之间的差距。 它可以手动拖动控件进行页面设计,前后台分离大大缩小了开发时间。 但是呢,目前Scene Builder官方已经不再维护了,已经托给Gluon进行开发维护了,大家一定不要下载错了哟~
382 0
JavaFX Scene Builder 下载安装
|
数据可视化 Java Android开发
JavaGUI:eclipse+e(fx)clipse+JavaFX Scene Builder搭建JavaFX可视化开发环境
JavaGUI:eclipse+e(fx)clipse+JavaFX Scene Builder搭建JavaFX可视化开发环境
130 0
JavaGUI:eclipse+e(fx)clipse+JavaFX Scene Builder搭建JavaFX可视化开发环境
|
图形学 Windows
Unity报错之 No Sprite Editor Window registered. Please download 2D Sprite package from Package Manager
Unity2019操作对图集进行操作编辑出错:No Sprite Editor Window registered. Please download 2D Sprite package from Package Manager.
1080 0
Unity报错之 No Sprite Editor Window registered. Please download 2D Sprite package from Package Manager