当前位置: 首页 > news >正文

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);}@Overridepublic 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() 方法显示舞台(窗口)。

相关文章:

JavaFX之Stage

Stage&#xff08;舞台&#xff09;&#xff0c;它代表了一个顶级窗口&#xff0c;是JavaFX应用程序的主要容器。Stage可以包含多个场景&#xff08;Scene&#xff09;&#xff0c;每个场景可以包含各种用户界面元素&#xff08;如按钮、文本框等&#xff09;。Stage提供了许多…...

深度翻页导出导致慢SQL,mysqlCPU飙升优化方案

慢SQL原因分析&#xff1a; 1.深度翻页 2.多表JOIN 3. 大IN 4. id倒排序 本文针对深度翻页的优化进行探讨 方案1&#xff1a; 将limit offset, pageSize的方式改成 id > xx limit pageSize. 这样能走Id索引&#xff0c;提高速度。 缺点&#xff1a;不能使用多线程…...

小谈设计模式(1)—总序

小谈设计模式&#xff08;1&#xff09;—总序 开始操作设计模式总论设计模式是什么组成要素模式名称问题描述解决方案效果描述 设计模式有什么作用提供可重用的解决方案提高代码的可读性和可维护性促进代码的可扩展性提高代码的灵活性和可重用性促进团队合作和沟通作用总结 为…...

【c++】stringstream基础:实现数据类型转换和字符串分割

传统实现整型转换为字符串需要使用itoa或者sprintf&#xff0c;对于itoa和atoi的使用可以看文章&#xff1a; atoi和itoa极简无废话概述 但是用这两个函数进行转换时&#xff0c;所需要的空间事先不确定&#xff0c;所以可能造成程序崩溃&#xff0c;今天介绍的stringstream可…...

Java基础学习笔记-5

前言 Java编程语言是一门广泛应用于软件开发领域的高级编程语言。它的强大特性和跨平台性使其成为许多开发者的首选语言。本文将介绍一些Java编程的关键概念&#xff0c;包括函数重载、可变参数、值传递、递归等&#xff0c;这些概念是Java编程的基础&#xff0c;对于理解和掌…...

合同交付类项目如何高效管理?

美国项目管理协会(PMI)保罗格蕾斯曾说:“当今社会,一切都是项目,一切也将成为项目。”在“万事皆项目”的背景下&#xff0c;企业在运营过程中会产生大量的项目型业务活动&#xff0c;例如&#xff1a;举办市场活动、产品研发、进行企业内训、采购招标、工程建设等等。那么按照…...

两性养生网站源码 生活类减肥网站源码 健康网模板源码 支持QQ登录和百度主动推送

本套模板非常适合生活类&#xff0c;两性类&#xff0c;减肥类等等类型的网站&#xff0c;这类型网站比较好做流量&#xff0c;因为客户群体众多&#xff0c; 可以自行改内容为其他类型网站模板总体非常简洁漂亮&#xff0c;配色合理&#xff0c;视觉舒服&#xff0c;并且配合…...

CentOS7安装Jenkins(更改默认运行的端口号8080->16060)

第一步&#xff1a; 端口号为默认8080 的安装是&#xff1a;Jenkins安装配置 第二步&#xff1a;将默认运行端口8080—>16060 首先修改配置文件 修改配置文件&#xff1a;vi /etc/sysconfig/jenkins修改内容&#xff1a;# 服务监听端口JENKINS_PORT"16060"然后…...

Java开发之Mysql【面试篇 完结版】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、知识体系二、Mysql-优化1. 优化-如何定位慢查询① 问题引入② 解决方案③ 问题总结④ 实战面试 2. 优化-sql执行很慢&#xff0c;如何解决① 问题引入② 解…...

【实战】十二、自动化测试 —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十九)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

【人月神话】重新探索人月神话:软件工程的现实与挑战

人月神话是一篇由美国软件工程师弗雷德里克布鲁克斯所写的软件工程经典之作&#xff0c;最早发表于1975年。这篇文章的全名是《人月神话&#xff1a;软件工程的神话与现实》&#xff08;The Mythical Man-Month: Essays on Software Engineering&#xff09;&#xff0c;它涵盖…...

电阻和电容

目录 1、常见的电阻器 2、电容 ​编辑 1、常见的电阻器 对于电阻需要了解三个参数&#xff08;查询电阻的数据手册&#xff09;&#xff1a; 1、封装&#xff1a;就是电阻的尺寸或者大小&#xff0c;看焊在你的pcb板上是否合适。 2、标称&#xff1a;电阻的电阻大小、精度、…...

01-Java-日志框架

1 日志技术概述 1.1 什么是日志技术 ​ 日志技术是一种记录和存储应用程序运行时信息的技术。它可以捕获应用程序的状态、事件、错误和警告等信息&#xff0c;并将其保存到日志文件或其他存储介质中。日志技术可以帮助开发人员和运维团队了解应用程序的运行情况&#xff0c;进…...

【js】map、filter、reduce、fill(待补充...)

const arr [{ id: 1, flag: true },{ id: 2, flag: true },{ id: 3, flag: false },{ id: 4, flag: true }, ]map&#xff1a;返回的是对每个元素进行操作后的结果数组&#xff0c;这个数组的长度和原数组相同 const result arr.map((item: any) > {return item.flag fa…...

【JPC出版】第二届能源与电力系统国际学术会议 (ICEEPS 2023)

第二届能源与电力系统国际学术会议 (ICEEPS 2023) 2023 2nd International Conference on Energy and Electrical Power Systems 第二届能源与电力系统国际学术会议 (ICEEPS 2023)将于2023年10月27日至29日在中国厦门举行。ICEEPS 将汇集能源科学、电气工程和电力系统领域的…...

51单片机的简易篮球计分器倒计时仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机的简易篮球计分器倒计时仿真设计( proteus仿真程序原理图报告讲解视频&#xff09; 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接 51单片机的简易篮球计分器倒计时仿真设计( proteus仿真程序原理图报告讲解视频…...

医院安全不良事件报告系统源码 PHP+ vue2+element+ laravel8+ mysql5.7+ vscode开发

不良事件上报系统通过 “事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、 以及 “事后的原因分析和工作持续优化”&#xff0c;结合预存上百套已正在使用的模板&#xff0c;帮助医院从对护理事件、药品事件、医疗器械事件、医院感染事件、输血事件、意…...

Mybatis -- 读取 DATE 类型字段时可能遇到的问题(夏令时问题)

在使用 MYBATIS 读取数据库字段的时候&#xff0c;我们一般需要为查询字段指定数据类型。特别是当我们使用 mybatis generator 去生成对应的接口代码时&#xff0c;会自动按照数据库字段类型生成响应映射规则的代码。   如下&#xff0c;左侧是 date 类型生成的字段映射规则&…...

第10节-PhotoShop基础课程-选区工具

文章目录 前言1.矩形选区 shift 是正方形1.任意比例2.等比绘制 先点击再按shift3.中心绘制1.任意比例 先点击再按Alt2.等比绘制 先点击再按Alt Shift 4.移动选区 按住空格 2.椭圆选区1.椭圆选区2.正圆选区 shift键3.中心圆选区 Alt Shift 3.选取选项1. 选区1.建立选区2.加选 s…...

【C++】C++动态内存管理

&#x1f3f3;️‍&#x1f308;C/C内存分布 说明&#xff1a; 1.我们的代码并非放在代码段里的&#xff0c;而是以文件的形式存在磁盘上的。 代码经过编译链接形成的二进制指令&#xff0c;才是放进代码段里的。&#xff08;即可执行代码&#xff09; 2.“abcd”如果没有被c…...

OpenClaw 小龙虾Windows10 专属一键部署教程|10 分钟搞定本地 AI 数字员工

适配系统&#xff1a;Windows10 64 位&#xff08;纯小白友好版&#xff09; 核心优势&#xff1a;免命令行、免环境配置、解压即装&#xff0c;内置所有运行依赖&#xff0c;全程可视化操作&#xff0c;新手也能一次成功部署 2026 爆火的开源 AI 智能体&#xff01; 本文专属…...

从Sigmoid函数到脉冲频率:步进电机S型加减速的数学建模与C/C++实现

1. 为什么步进电机需要S型加减速 我第一次接触步进电机控制时&#xff0c;以为只要给脉冲信号就能让电机转起来。结果在实际项目中&#xff0c;电机要么启动时丢步&#xff0c;要么停止时过冲&#xff0c;把机械结构撞得砰砰响。后来才知道&#xff0c;步进电机和普通直流电机不…...

第 11 章 追踪与性能分析(OpenOCD)

第 11 章 追踪与性能分析 导读:现代 ARM 处理器内置了丰富的 CoreSight 追踪基础设施,包括 ETM 指令追踪、ITM/DWT 数据追踪、SWO/TPIU 追踪输出以及 SEGGER RTT 高速日志。本章将系统介绍如何在 OpenOCD 中配置和使用这些追踪功能,帮助开发者在不侵入目标程序的前提下,完成…...

芯片设计中的input2reg时序检查:从SDC配置到实际案例分析

芯片设计中的input2reg时序检查实战指南&#xff1a;从约束配置到调试技巧 在数字IC设计流程中&#xff0c;时序检查是确保芯片功能正确的关键环节。input2reg路径作为四种基本时序路径之一&#xff0c;其特殊性在于数据发起端位于芯片外部&#xff0c;而捕获端位于内部寄存器…...

RDK X5上800万像素摄像头延迟从7秒降到200ms:我的5个月踩坑与优化实录

RDK X5高分辨率摄像头优化实战&#xff1a;从7秒延迟到200ms的性能飞跃 深夜的显示器前&#xff0c;我盯着屏幕上缓慢刷新的图像——32642448分辨率下&#xff0c;每按一次快门要等待7秒才能看到结果。作为一名在嵌入式视觉领域摸爬滚打多年的开发者&#xff0c;这种性能表现简…...

Windows音频捕获终极革命:告别系统混音器,实现进程级精准录音

Windows音频捕获终极革命&#xff1a;告别系统混音器&#xff0c;实现进程级精准录音 【免费下载链接】win-capture-audio An OBS plugin that allows capture of independant application audio streams on Windows, in a similar fashion to OBSs game capture and Discords …...

英雄联盟LCU工具集:3大核心功能如何提升你的游戏体验?

英雄联盟LCU工具集&#xff1a;3大核心功能如何提升你的游戏体验&#xff1f; 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit Lea…...

长上下文不可强求:从 Gemini 到 Opus,1M context 为什么还没体现出应有价值

长上下文不可强求&#xff1a;从 Gemini 到 Opus&#xff0c;1M context 为什么还没体现出应有价值 摘要 过去一年&#xff0c;long context 一直是大模型产品最容易被拿来宣传的能力之一。32K 不够&#xff0c;就上 128K&#xff1b;128K 还不够&#xff0c;就上 1M。看起来&a…...

从DVP到VGA:基于FPGA的OV7670图像采集与实时显示系统设计

1. OV7670摄像头与DVP接口基础 OV7670是一款经典的VGA分辨率图像传感器&#xff0c;在嵌入式视觉领域应用广泛。我第一次接触这款摄像头是在2015年的一个智能门铃项目上&#xff0c;当时就被它小巧的体积和简单的接口所吸引。这款传感器最大支持640x480分辨率&#xff0c;输出格…...

专业流媒体视频下载工具技术解析与使用指南

专业流媒体视频下载工具技术解析与使用指南 价值主张&#xff1a;高效解决流媒体内容本地化需求 在数字内容消费日益普及的今天&#xff0c;用户对在线视频资源的本地保存需求持续增长。m3u8-downloader作为一款专业的流媒体下载工具&#xff0c;专注于解决m3u8格式视频的高效…...