JavaFX 是 Java 的下一代图形用户界面工具包。JavaFX 是一组图形和媒体 API,我们可以用它们来创建和部署富客户端应用程序。
JavaFX 允许开发人员快速构建丰富的跨平台应用程序。JavaFX 通过硬件加速图形支持现代 GPU。
JavaFX 允许开发人员在单个编程接口中组合图形、动画和 UI 控件。
JavaFX 技术主要应用于创建富互联网应用(RIA)。当前的 JavaFX 包括 JavaFX 脚本和 JavaFX Mobile(一种运行于移动设备的操作系统),今后 JavaFX 将包含更多的产品。JavaFX Script 编程语言是一种声明性的、静态类型脚本语言。
JavaFX 技术有着良好的前景,包括可以直接调用 Java API 的能力。因为 JavaFX Script 是静态类型,它同样具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元,这些特性使得使用 JavaFX 技术创建和管理大型程序变为可能。
可用性
JavaFX API 与 Java SE 运行时环境(JRE)和 Java 开发工具包(JDK)捆绑在一起。 JDK 可用于所有主要的桌面平台,Windows、Mac OS X 和 Linux。JavaFX 应用程序可以在所有主要的桌面平台上编译和运行。
JDK for ARM 平台包括 JavaFX 的基础、图形和控件组件。
主要特征
JavaFX 中包含以下功能:
- JavaFX 是用 Java 编写的,JavaFX 应用程序代码可以从任何 Java 库引用 API。
- JavaFX 应用程序的外观和感觉可以定制。因此可以使用级联样式表(CSS)来对 JavaFX 应用程序进行风格化。平面设计师可以通过 CSS 自定义外观和样式。
- 还可以在 FXML 脚本语言中描述 UI 的表示方面,并使用 Java 对应用程序逻辑进行编码。
- 通过使用 JavaFX Scene Builder,可以通过拖放来设计 UI。Scene Builder 将创建可以移植到集成开发环境(IDE)的 FXML 标记,以便开发人员可以添加业务逻辑。
- JavaFX 有一个称为 WebView 的控件,可以呈现复杂的网页。WebView 支持 JavaScript,我们可以从 Java API 在 Web 页面中调用 Javascript。WebView 还支持额外的 HTML5 功能,包括 Web 套接字、Web Workers 和 Web 字体,还可以从 WebView 打印网页。
- Swing 互操作性。现有的 Swing 应用程序可以使用 JavaFX 类,例如图表和 WebView。还可以使用 SwingNode 类将 Swing 内容嵌入到我们应用程序中。
- 3D 图形功能。JavaFX 支持 Shape,如 Box、Cylinder、MeshView 和 Sphere 子类,SubScene、Material、PickResult、AmbientLight 和 PointLight。
- Canvas API。使用 Canvas API,可以在 JavaFX 场景上绘制。
- 打印 API。javafx.print 包提供了 JavaFX Printing API 的类。
- 富文本支持。JavaFX 支持增强的文本,包括双向文本和复杂的文本脚本,例如泰语和印地文的控件,以及多行、多种风格的文本。
- 多点触控支持。JavaFX 提供对多点触摸操作的支持。
- JavaFX 支持 Hi-DPI 显示。
UI 控件
下列列出了 JavaFX API 中提供的一些内置 JavaFX UI 控件。
- Label
- Button
- Radio Button
- Toggle Button
- Checkbox
- Choice Box
- Text Field
- Password Field
- Scroll Bar
- Scroll Pane
- List View
- Table View
- Tree View
- Tree Table View
- Combo Box
- Separator
- Slider
- Progress Bar
- Progress Indicator
- Hyperlink
- Tooltip
- HTML Editor
- Titled Pane
- Accordion
- Menu
- Color Picker
- Date Picker

