JavaFX 架构
下图展示了 JavaFX 平台的完整架构。有各种相互连接的内置组件。但是,JavaFX 包含一组丰富的 API,足以开发在许多平台上一致运行的富 Internet 应用程序。
1 JavaFX 公共API
JavaFX 架构的顶层包含一个 JavaFX 公共 API,它提供负责执行全功能 JavaFX 应用程序的所有必要类。该 API 的所有包列表如下。
包名 | 描述 |
---|---|
javafx.animation | 提供一组负责基于过渡的动画的类 |
javafx.application | 提供应用程序生命周期方法 |
javafx.collections | 提供可以处理集合和相关实用程序的类 |
javafx.concurrent | 提供负责多任务处理的类 |
javafx.embed.swing | 提供可以在swing代码中使用的一组类 |
javafx.embed.swt | 提供可以在 swt 代码中使用的一组类 |
javafx.event | 提供处理事件及其处理的类 |
javafx.fxml | 包含负责从标记加载层次结构的一组类 |
javafx.geometry | 提供包含在对象上操作 2D 几何体的方法的 2D 类。 |
javafx.scene | 提供处理场景图 API 的类 |
javafx.scene.canvas | 提供处理画布的一组类。 |
javafx.scene.control | 包含所有 JavaFX 组件的类。 |
javafx.scene.effect | 包含将图形效果应用于场景图节点的一组类 |
javafx.scene.image | 提供一组用于加载和显示图像的类 |
javafx.scene.input | 为鼠标和键盘事件提供一组类 |
javafx.scene.layout | 提供一组类以支持用户界面布局 |
javafx.scene.media | 提供将音频和视频集成到 JavaFX 应用程序中的一组类 |
javafx.scene.paint | 提供一组颜色和渐变类,以在渲染场景图时填充形状和背景。 |
javafx.scene.shape | 提供对与 2D 几何相关的对象执行操作的一组 2D 类。 |
javafx.scene.text | 为字体和呈现文本节点提供一组类。 |
javafx.scene.transform | 提供用于对对象执行旋转、缩放、剪切操作的一组类。 |
javafx.scene.web | 提供加载和显示 Web 内容的方法。 |
javafx.stage | 为 JavaFX 内容提供顶级容器类。 |
javafx.util | 提供实用程序类 |
javafx.util.converter | 此包用于 JavaFX 的标准字符串转换器 |
2 场景图
它是构建 JavaFX 应用程序的起点。它是一个分层的节点树,代表用户界面的所有视觉元素。它还具有处理事件的能力。一般来说,场景图可以定义为节点的集合。
每个节点都有其单独的 id、样式和音量。场景图的每个节点只能有一个父节点和零个或多个子节点。
场景图上的所有实现实际上都应用于其节点。它们是javafx.scene 包中存在的各种类,用于在节点上创建、修改和应用一些转换。稍后我们将详细讨论场景图。
3 图形引擎
JavaFX 图形引擎为场景图提供图形支持。它基本上支持 2D 和 3D 图形。当系统上的图形硬件无法支持硬件加速渲染时,它会提供软件渲染。
JavaFX 中的两个图形加速管道是:
3.1 棱镜
棱镜可以看作是高性能硬件加速图形管道。它具有渲染 2D 和 3D 图形的能力。Prism 实现了在不同平台上呈现图形的不同方式。
- Windows XP 或 vista 上的 DirectX 9
- Windows 7 上的 DirectX 11
- Mac、Linux 和嵌入式上的 OpenGL
- 无法进行硬件加速时的 Java 2D
3.2 量子工具包
Quantum Tool Kit 用于将棱镜和玻璃窗工具套件绑定在一起,并使它们可用于堆栈中的上述层。
4 Glass Window工具包
它位于 JavaFX 图形堆栈的最低级别。它基本上可以看作是一个平台相关层,作为 JavaFX 平台和本机操作系统之间的接口。
它负责提供操作系统服务,例如管理窗口、定时器、事件队列和表面。
5 网页视图
我们还可以将 HTML 内容嵌入到 JavaFX 场景图中。为此,JavaFX 使用了一个名为 Web 视图的组件。Web 视图使用 web kit,它是一个内部开源浏览器,可以渲染 HTM5、DOM、CSS、SVG 和 JavaScript。
使用 Web 视图,我们可以从 JavaFX 应用程序渲染 HTML 内容,并将一些 CSS 样式应用到用户界面。
6 媒体引擎
通过使用媒体引擎,JavaFX 应用程序可以支持音频和视频媒体文件的播放。JavaFX 媒体引擎依赖于称为 G Streamer 的开源引擎。包javafx.scene.media包含可以为 JavaFX 应用程序提供媒体功能的所有类和接口。
热门文章
优秀文章