- JavaFX 安装与架构
- JavaFX 环境
- 使用 NetBeans 安装 JavaFX
- 使用 Eclipse 安装 JavaFX
- 使用 Visual Studio Code 安装 JavaFX
- JavaFX 架构
- JavaFX 应用程序
- JavaFX 二维图形
- JavaFX 二维图形
- JavaFX 绘制直线
- JavaFX 绘制矩形
- JavaFX 绘制圆角矩形
- JavaFX 绘制圆形
- JavaFX 绘制椭圆
- JavaFX 绘制多边形
- JavaFX 绘制折线
- JavaFX 绘制三次贝塞尔曲线
- JavaFX 绘制二次贝塞尔曲线
- JavaFX 绘制弧形
- JavaFX 绘制 SVG 路径
- JavaFX 二维对象的属性
- JavaFX 描边类型属性
- JavaFX 描边宽度属性
- JavaFX 描边填充属性
- JavaFX 描边属性
- JavaFX 描边连接属性
- JavaFX 描边斜接限制属性
- JavaFX 描边线帽属性
- JavaFX 平滑属性
- JavaFX 路径对象
- JavaFX 路径对象
- JavaFX LineTo 路径对象
- JavaFX HLineTo 路径对象
- JavaFX VLineTo 路径对象
- JavaFX QuadCurveTo 路径对象
- JavaFX CubicCurveTo 路径对象
- JavaFX ArcTo 路径对象
- JavaFX 颜色和纹理
- JavaFX 颜色
- JavaFX 线性渐变图案
- JavaFX 径向渐变图案
- JavaFX 文本
- JavaFX 文本
- JavaFX 效果
- JavaFX 效果
- JavaFX 颜色调整效果
- JavaFX 颜色输入效果
- JavaFX 图片输入效果
- JavaFX 混合效果
- JavaFX 辉光效果
- JavaFX 泛光效果
- JavaFX 方框模糊效果
- JavaFX 高斯模糊效果
- JavaFX 运动模糊效果
- JavaFX 反射效果
- JavaFX 棕褐色效果
- JavaFX 阴影效果
- JavaFX 投影效果
- JavaFX 内阴影效果
- JavaFX 光照效果
- JavaFX 远光源效果
- JavaFX 聚光灯效果
- JavaFX 点光源效果
- JavaFX 位移贴图
- JavaFX 透视变换
- JavaFX 变换
- JavaFX 变换
- JavaFX 旋转变换
- JavaFX 缩放变换
- JavaFX 平移变换
- JavaFX 切变变换
- JavaFX 动画
- JavaFX 动画
- JavaFX 旋转过渡
- JavaFX 缩放过渡
- JavaFX 平移过渡
- JavaFX 淡入淡出过渡
- JavaFX 填充过渡
- JavaFX 描边过渡
- JavaFX 顺序过渡
- JavaFX 并行过渡
- JavaFX 暂停过渡
- JavaFX 路径过渡
- JavaFX 图片
- JavaFX 图片
- JavaFX 三维图形
- JavaFX 三维图形
- JavaFX 创建立方体
- JavaFX 创建圆柱体
- JavaFX 创建球体
- 三维对象的属性
- JavaFX 剔除面属性
- JavaFX 绘制模式属性
- JavaFX 材质属性
- JavaFX 事件处理
- JavaFX 事件处理
- JavaFX 使用便捷方法
- JavaFX 事件过滤器
- JavaFX 事件处理器
- JavaFX UI 控件
- JavaFX UI 控件
- JavaFX 列表视图
- JavaFX 手风琴
- JavaFX 按钮栏
- JavaFX 选择框
- JavaFX HTML 编辑器
- JavaFX 菜单栏
- JavaFX 分页
- JavaFX 进度指示器
- JavaFX 滚动面板
- JavaFX 分隔符
- JavaFX 滑块
- JavaFX 微调器
- JavaFX 分割窗格
- JavaFX 表格视图
- JavaFX 标签页面板
- JavaFX 工具栏
- JavaFX 树视图
- JavaFX 标签
- JavaFX 复选框
- JavaFX 单选按钮
- JavaFX 文本字段
- JavaFX 密码字段
- JavaFX 文件选择器
- JavaFX 超链接
- JavaFX 工具提示
- JavaFX 警报框
- JavaFX 日期选择器
- JavaFX 文本区域
- JavaFX 图表
- JavaFX 图表
- JavaFX 创建饼图
- JavaFX 创建折线图
- JavaFX 创建面积图
- JavaFX 创建条形图
- JavaFX 创建气泡图
- JavaFX 创建散点图
- JavaFX 创建堆叠面积图
- JavaFX 创建堆叠条形图
- JavaFX 布局面板
- JavaFX 布局面板
- JavaFX HBox 布局
- JavaFX VBox 布局
- JavaFX BorderPane 布局
- JavaFX StackPane 布局
- JavaFX TextFlow 布局
- JavaFX AnchorPane 布局
- JavaFX TilePane 布局
- JavaFX GridPane 布局
- JavaFX FlowPane 布局
- JavaFX CSS
- JavaFX CSS
- JavaFX 多媒体
- JavaFX 处理多媒体
- JavaFX 播放视频
- JavaFX 有用资源
- JavaFX 快速指南
- JavaFX 有用资源
- JavaFX 讨论
JavaFX 架构
JavaFX 是一个软件平台,允许开发者构建各种内容丰富的客户端应用程序,这些应用程序可以在多个平台上保持一致地运行。它是一个完整的 API,拥有丰富的类和接口集,可以构建具有丰富图形的 GUI 应用程序。该 API 的一些重要包包括:
javafx.animation - 包含用于向 JavaFX 节点添加基于过渡的动画(例如填充、淡入淡出、旋转、缩放和平移)的类。
javafx.application - 包含一组负责 JavaFX 应用程序生命周期的类。
javafx.css - 包含用于向 JavaFX GUI 应用程序添加类似 CSS 的样式的类。
javafx.event - 包含用于传递和处理 JavaFX 事件的类和接口。
javafx.geometry - 包含用于定义二维对象并在其上执行运算的类。
javafx.stage - 此包包含 JavaFX 应用程序的顶级容器类。
javafx.scene - 此包提供类和接口以支持场景图。此外,它还提供子包,例如 canvas、chart、control、effect、image、input、layout、media、paint、shape、text、transform、web 等。许多组件支持 JavaFX 的这个丰富的 API。
在本章中,让我们学习这个 JavaFX 平台的架构设计及其组件之间的互连方式。
JavaFX 架构
下图显示了 JavaFX API 的架构。您可以看到支持 JavaFX API 的组件。
场景图
在 JavaFX 中,GUI 应用程序使用场景图进行编码。场景图是构建 GUI 应用程序的起点。它包含被称为节点的 GUI 应用程序基元。
节点是一个可视/图形对象,它可能包括:
几何(图形)对象 - (二维和三维),例如圆形、矩形、多边形等。
UI 控件 - 例如按钮、复选框、选择框、文本区域等。
容器 - (布局面板),例如边框面板、网格面板、流面板等。
媒体元素 - 例如音频、视频和图像对象。
一般来说,节点的集合构成一个场景图。所有这些节点都按层次结构排列,如下所示。
场景图中的每个节点只有一个父节点,不包含任何父节点的节点称为根节点。
同样,每个节点都有一个或多个子节点,没有子节点的节点称为叶子节点;有子节点的节点称为分支节点。
节点实例只能添加到场景图一次。场景图的节点可以具有效果、不透明度、变换、事件处理程序、应用程序特定状态。
Prism
Prism 是一个高性能硬件加速图形管道,用于渲染 JavaFX 中的图形。它可以渲染二维和三维图形。
为了渲染图形,Prism 使用:
- Windows XP 和 Vista 上的 DirectX 9。
- Windows 7 上的 DirectX 11。
- Mac 和 Linux、嵌入式系统上的 OpenGL。
如果系统上图形的硬件支持不足,则 Prism 使用软件渲染路径来处理图形。
与支持的显卡或 GPU 一起使用时,它可以提供更流畅的图形。如果系统不支持显卡,则 Prism 默认使用软件渲染堆栈(上述两种中的任何一种)。
GWT(Glass Windowing Toolkit)
顾名思义,GWT 提供服务来管理窗口、计时器、表面和事件队列。GWT 将 JavaFX 平台连接到本地操作系统。
Quantum Toolkit
它是 Prism、Glass、Media Engine 和 Web Engine 低级组件之上的抽象。它将 Prism 和 GWT 联系在一起,并使它们可用于 JavaFX。
WebView
使用 JavaFX,您还可以将 HTML 内容嵌入到场景图中。WebView 是 JavaFX 的一个组件,用于处理此内容。它使用一种称为Web Kit的技术,这是一种内部开源网页浏览器引擎。此组件支持不同的 Web 技术,如 HTML5、CSS、JavaScript、DOM 和 SVG。
使用 WebView,您可以:
- 渲染来自本地或远程 URL 的 HTML 内容。
- 支持历史记录并提供前进和后退导航。
- 重新加载内容。
- 将效果应用于 Web 组件。
- 编辑 HTML 内容。
- 执行 JavaScript 命令。
- 处理事件。
一般来说,使用 WebView,您可以从 Java 控制 Web 内容。
媒体引擎
JavaFX 媒体引擎基于一个称为Streamer的开源引擎。此媒体引擎支持视频和音频内容的播放。
JavaFX 媒体引擎为以下文件格式提供音频支持:
音频 |
|
---|---|
视频 |
|
包javafx.scene.media包含提供 JavaFX 中媒体功能的类和接口。它以三个组件的形式提供,它们是:
媒体对象 - 表示媒体文件
媒体播放器 - 用于播放媒体内容。
媒体视图 - 用于显示媒体。