1、简介
JavaFX 是一个用于构建客户端应用程序的 Java 库,作为 Java 标准库的一部分(JDK 8 到 10),从 JDK 11 开始,JavaFX 将以独立模块发布,将不再包含在 JDK标准库中,他是 Java 应用程序开发的主要 GUI 库。
2、特性
- 支持 CSS 样式、动画和视觉特效
- FXML:基于 XML 的声明式 UI 定义语言
- Scene Builder:可视化布局设计工具
- WebView:集成 Web 内容的组件
- 多媒体支持:音频、视频和图像处理
- 3D 图形支持:三维场景渲染能力
- Windows、macOS、Linux 等平台上都可运行
3、基本架构组件
Stage:顶层容器,相当于应用程序的窗口
Scene:场景,Stage 中可以切换不同的 Scene
Scene Graph:场景图,一个树状结构,包含了所有 UI 元素
Nodes:节点,最重要的组件之一,绝大部分的控件都是Nodes的子类,它可以是控件、容器、形状等
4、工程搭建与第一个案例
(1)开发工具与版本
- 开发工具:IntelliJ IDEA 2020.2.3
- Java版本:JDK8
- JavaFX版本:8(8版本的JDK已经内置了javaFx,JDK11以后,JavaFX成为一个独立的模块发布)
(2)工程搭建
(3)简单示例
/**
* @description: javafx的第一个示例 hello world
* @author: HK
* @since: 2025/4/23 15:06
*/
public class Demo extends Application { // 类需要集成javaFx的Application,并重写start方法
public static void main(String[] args) {
// 启动类 javafx启动不是直接调用start()方法,而是调用Application的launch()方法,Application内部会自动调用start()方法
launch();
}
@Override
public void start(Stage primaryStage) throws Exception {
// primaryStage窗体,Application已经创建了一个默认的窗体,我们也可以自己自定义创建
// 创建一个text节点
Text text = new Text("hello javafx");
// 创建一个根节点布局 并将节点放入布局
BorderPane pane = new BorderPane(text);
// 将布局放入场景
Scene scene = new Scene(pane);
// 将场景放入窗体
primaryStage.setScene(scene);
// 设置窗体大小
primaryStage.setWidth(500);
primaryStage.setHeight(500);
// 设置窗体的标题
primaryStage.setTitle("hello world");
// 设置窗体显示
primaryStage.show();
}
}