package com.lihaozhe;
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.control.Label;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.FlowPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import java.util.Optional;
/**
* @author 李昊哲
* @version 1.0
* @Description
* @create 2023/9/3
*/
public class StageExample extends Application {
@Override
public void start(Stage primaryStage) {
// Button 按钮
Button button = new Button("你过来呀");
BorderPane root = new BorderPane(button);
// Create a scene with the root node
Scene scene = new Scene(root, 400, 300);
// Set the scene for the stage
primaryStage.setScene(scene);
// Set the title of the stage
primaryStage.setTitle("JavaFX Stage Example");
// width,height,用于设置窗口大小
primaryStage.setWidth(800);
primaryStage.setHeight(600);
// resizable,是否允许改变窗口大小
primaryStage.setResizable(true);
// x,y,用于设置窗口在桌面上显示的位置
primaryStage.setX(100);
primaryStage.setY(100);
// 用户设置窗口的样式
// 我们可以通过枚举类选择窗口样式,默认的窗口样式为“DECORATED”
// 枚举类StageStyle有以下样式:
// DECORATED 用纯白背景和平台装饰定义一个普通的窗口样式
// UNDECORATED 定义一个窗口样式,背景为纯白,没有任何装饰
// 当我们没有为Stage设置Sence时,我们在桌面上将看不到任何东西
// 当我们有为Stage设置Sence时,可以看到,该窗口样式的最大特点就是,我们看不到标题、图表、隐藏按钮,全屏按钮、关闭按钮那一栏
// TRANSPARENT 定义具有透明背景且没有装饰的窗口样式
// UTILITY 定义具有纯白背景和用于实用程序窗口的最小平台装饰的样式
// UNIFIED 使用平台装饰定义窗口样式,并消除客户端区域和装饰之间的边界。客户区背景与装修统一
primaryStage.initStyle(StageStyle.DECORATED);
// primaryStage.initModality(Modality.WINDOW_MODAL);
// 设置窗口的图标
// primaryStage.getIcons().add(new Image("https://img1.baidu.com/it/u=2865456449,2930074044&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500"));
// primaryStage.getIcons().add(new Image("file:///D:\\dev\\java\\code\\javafx\\demo01\\src\\main\\resources\\icon\\java02.png"));
// 获取图标文件类路径
String path = this.getClass().getResource("/icon/java02.png").getPath();
// 设置协议
String protocol = "file://";
primaryStage.getIcons().add(new Image(protocol + path));
// 按钮点击事件
button.setOnAction(event -> {
Stage stage = new Stage();
stage.setTitle("自强不息");
stage.setWidth(400);
stage.setHeight(300);
// 将主窗口设置为父窗口
stage.initOwner(primaryStage);
// Modality 模态框
// NONE
// WINDOW_MODAL 需要父窗口 只有父窗口不可用其它窗口可用
// APPLICATION_MODAL 应用模态 只有本窗口可用其它窗口不可用
stage.initModality(Modality.WINDOW_MODAL);
stage.show();
});
// Show the stage
primaryStage.show();
// 取消系统默认退出
Platform.setImplicitExit(false);
// Register an event handler for the close request event
primaryStage.setOnCloseRequest(event -> {
System.out.println("Closing the stage...");
// 取消系统默认关闭窗口
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) {
// 关闭窗口
primaryStage.close();
// 退出程序
Platform.exit();
}
});
}
public static void main(String[] args) {
launch(args);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
javafx.zip (37个子文件)
javafx
demo01
pom.xml 3KB
src
test
java
main
resources
icon
java02.png 85KB
dog.png 6KB
com
lihaozhe
fxml
fxml-view.fxml 504B
java
module-info.java 221B
com
lihaozhe
App01.java 2KB
StageExample.java 5KB
NodeExample.java 2KB
HelloWorldApp.java 792B
fxml
FxmlApplication.java 631B
FxmlController.java 284B
EventExample.java 2KB
ImageExample.java 1KB
PropertyExample.java 1KB
App02.java 2KB
SceneExample.java 1KB
demo03
pom.xml 3KB
src
main
resources
mapper
WordCountMapper.xml 605B
application.yml 1KB
com
lihaozhe
demo03
hello-view.fxml 870B
java
com
lihaozhe
demo03
mapper
WordCountMapper.java 335B
controller
HelloController.java 2KB
utils
SpringUtils.java 3KB
pojo
WordCount.java 345B
service
WordCountService.java 507B
impl
HelloApplication.java 959B
demo02
pom.xml 3KB
src
main
resources
com
lihaozhe
demo2
hello-view.fxml 891B
java
module-info.java 251B
com
lihaozhe
demo2
pojo
Person.java 641B
HelloController.java 2KB
HelloApplication.java 699B
hello
pom.xml 3KB
src
main
resources
com
lihaozhe
hello
hello-view.fxml 506B
java
module-info.java 164B
com
lihaozhe
hello
HelloController.java 285B
HelloApplication.java 634B
共 37 条
- 1
资源评论
李昊哲小课
- 粉丝: 1179
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功