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 APIJava SE运行时环境(JRE)和Java开发工具包(JDK)捆绑在一起。
JDK可用于所有主要的桌面平台,WindowsMac OS XLinuxJavaFX应用程序可以在所有主要的桌面平台上编译和运行。

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控件,例如可以缩放,旋转,样式和添加效果。