JavaFX 入门第一课:从 OpenJFX Samples 学习 Stage、Scene 与 Label 三大核心类
2026/8/20 17:11:32 网站建设 项目流程

JavaFX 入门第一课:从 OpenJFX Samples 学习 Stage、Scene 与 Label 三大核心类

【免费下载链接】samplesJavaFX samples to run with different options and build tools项目地址: https://gitcode.com/gh_mirrors/samples5/samples

想学桌面 GUI 开发,却不知道从哪开始?JavaFX 入门其实没有想象中那么难。本文将以官方 OpenJFX Samples(samples 项目)中的 HelloFX 示例为主线,用通俗易懂的方式带你认识 JavaFX 中最核心的三个类——Stage(舞台/窗口)、Scene(场景)与 Label(标签控件),并附上快速运行方法,帮你迈出 JavaFX 入门的第一步。整个项目只需一个 Java 文件就能跑起来,非常适合新手对照学习。

一、OpenJFX Samples 是什么?先看懂项目结构

samples 是一个 JavaFX 官方示例集合,项目描述为 "JavaFX samples to run with different options and build tools",即同一份 HelloFX 代码,分别用命令行、Gradle、Maven以及**不同 IDE(Eclipse、IntelliJ、NetBeans、VSCode)**来运行,方便你选择最熟悉的方式上手。

整个仓库按目录清晰分层:

  • HelloFX/CLI/hellofx/HelloFX.java:最精简的单文件版本,适合 JavaFX 入门分析
  • CommandLine/Modular/CLI/hellofx:模块化(JPMS)命令行版本
  • CommandLine/Non-modular/CLI/hellofx:非模块化命令行版本,含 Launcher.java
  • IDE/VSCode/Modular/Gradle:VSCode + Gradle 一键运行版

建议初学者从HelloFX/CLI单文件版看起,代码量最小,逻辑最直观。

二、JavaFX Stage 类的作用:程序的门面「窗口」

JavaFX 应用必须继承javafx.application.Application类,并重写start(Stage stage)方法。这里的Stage就是 JavaFX 中最顶层的容器,通俗说就是程序的主窗口——标题栏、边框、最小化最大化按钮都归属于它。

在示例 HelloFX.java 中,核心代码只有短短几行:

public void start(Stage stage) { Label l = new Label("Hello, JavaFX ..."); Scene scene = new Scene(new StackPane(l), 640, 480); stage.setScene(scene); stage.show(); }

可以看到 JavaFX Stage 用法非常固定:先把界面装进 Scene,再用setScene绑定到 Stage,最后调用stage.show()显示窗口。main方法里只需要调用launch(),JavaFX 就会自动创建 Stage 并回调start

小提示:Stage代表「窗口」,一个程序可以有多个 Stage,就像浏览器可以开多个窗口一样。

三、JavaFX Scene 场景类:界面内容的「舞台布景」

Scene是 Stage 内部的内容层,它承载了所有 UI 控件。示例中new Scene(new StackPane(l), 640, 480)表示:创建一个 640×480 的场景,里面的根节点是一个 StackPane 布局,Label 控件居中显示在其中。

JavaFX Scene 创建时通常需要三个要素:

  1. 根节点:布局容器,如 StackPane、VBox、BorderPane
  2. 宽度与高度:场景尺寸,单位像素
  3. (可选)样式表:像 MainApp.java 中那样通过scene.getStylesheets().add(...)加载 CSS

如果使用 FXML 方式开发,还可以用FXMLLoader.load()从 scene.fxml 加载界面布局,配合 FXMLController.java 控制器分离界面与逻辑,这是大型项目推荐的 JavaFX 场景管理方式。

四、JavaFX Label 控件:显示文字的最简单方式

Label是 JavaFX 中最基础、最常用的文本显示控件。示例中用它展示 Java 与 JavaFX 的版本号:

String javaVersion = System.getProperty("java.version"); String javafxVersion = System.getProperty("javafx.version"); Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");

Label 的优势在于可以直接放进各种布局容器中,并通过 CSS 或 setStyle 轻松设置字体、颜色、对齐方式,非常适合入门时练习控件摆放。你还可以把它与 FXML 中的@FXML private Label label;注解结合,实现在控制器里动态更新文本(参考 FXMLController.java)。

五、最快运行方法:三种方式任你选

方式一:命令行快速运行(无需构建工具)

先下载 JDK 17+ 和 JavaFX SDK,然后进入单文件目录:

cd HelloFX/CLI/hellofx javac --module-path $PATH_TO_FX --add-modules javafx.controls HelloFX.java java --module-path $PATH_TO_FX --add-modules javafx.controls HelloFX

其中$PATH_TO_FX指向 JavaFX SDK 的 lib 目录。这是最快的 JavaFX 运行方式,适合快速验证代码。

方式二:VSCode + Gradle 一键运行

对于不习惯命令行的新手,推荐使用 IDE 运行方式。在 VSCode 中打开 IDE/VSCode/Modular/Gradle/hellofx 项目,安装 Java 扩展包和 Gradle for Java 扩展后,打开 Gradle Projects 面板,找到hellofx > Tasks > application,点击run任务即可启动应用:

也可以打开 IDE/VSCode/Modular/Maven 版本,体验用 Maven 管理 JavaFX 项目的方式。

方式三:模块化高级玩法

如果对 JPMS 模块化感兴趣,可以查看模块声明文件 module-info.java,它通过requires javafx.controls声明依赖,并配合jlink生成精简的自定义 JRE,让你的 JavaFX 应用体积更小、启动更快。

六、Stage、Scene、Label 三者关系一图流

可以这样理解 JavaFX 入门时的三者关系:

  • Stage(窗口):最外层,程序的门面
  • Scene(场景):窗口里的内容区域,管理根节点
  • Label(控件):场景里的元素,负责显示文字

三者层层嵌套:Stage包含SceneScene包含布局容器,布局容器再放入Label等控件。搞懂这条链路,JavaFX 入门的第一课就顺利通关了。

七、下一步学什么?

跑通 HelloFX 之后,可以继续挑战:

  • VBox / HBox / BorderPane布局替换 StackPane,练习多控件排列
  • 给 Label 添加 CSS 样式,体验 JavaFX 主题定制
  • 尝试 FXML + Controller 分离模式,为大型项目打基础
  • 用 Gradle 的jlink任务打包免 JRE 的桌面应用

想要获取全部示例代码,可以执行:

git clone https://gitcode.com/gh_mirrors/samples5/samples

克隆后对照本文提到的目录逐个运行,动手实践才是掌握 JavaFX 最快的方式。祝你早日写出第一个属于自己的桌面应用!🚀

【免费下载链接】samplesJavaFX samples to run with different options and build tools项目地址: https://gitcode.com/gh_mirrors/samples5/samples

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询