JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。
JavaFX允许开发人员快速构建丰富的跨平台应用程序。JavaFX通过硬件加速图形支持现代GPU。
JavaFX允许开发人员在单个编程接口中组合图形,动画和UI控件。
图表编程语言可用于开发互联网应用程序(RIA)。JavaFX技术主要应用于创建Rich Internet applications(RIAs)。当前的JavaFX包括JavaFX脚本和JavaFX Mobile(一种运营于行动装置的操作系统),今后JavaFX将包括更多的产品。JavaFX Script编程语言(以下称为JavaFX)是一种声明性的、静态类型脚本语言。
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
- Pagination Control
- File Chooser
JavaFX允许UI控制节点和形状节点在场景图上共存。
我们可以像任何其他JavaFX节点一样处理任何UI控件,例如可以缩放,旋转,样式和添加效果。