1. JavaFX概述
JavaFX 是一组图形和媒体包,使开发人员能够设计、创建、测试、调试和部署在不同平台上一致运行的富客户端应用程序。
目录
2. JavaFX 应用程序
由于 JavaFX 库是作为 Java API 编写的,因此 JavaFX 应用程序代码可以从任何 Java 库中引用 API。例如,JavaFX 应用程序可以使用 Java API 库来访问本机系统功能并连接到基于服务器的中间件应用程序。
可以自定义 JavaFX 应用程序的外观和感觉。级联样式表 (CSS) 将外观和样式与实现分开,以便开发人员可以专注于编码。图形设计人员可以通过 CSS 轻松自定义应用程序的外观和样式。如果您有网页设计背景,或者如果您想将用户界面 (UI) 和后端逻辑分开,那么您可以使用 FXML 脚本语言开发 UI 的表示方面,并为应用程序使用 Java 代码逻辑。如果您更喜欢在不编写代码的情况下设计 UI,那么请使用 JavaFX Scene Builder。在您设计 UI 时,Scene Builder 创建可移植到集成开发环境 (IDE) 的 FXML 标记,以便开发人员可以添加业务逻辑。
3. 可用性
JavaFX API 作为 Java SE 运行时环境 (JRE) 和 Java 开发工具包 (JDK) 的完全集成功能提供。因为 JDK 可用于所有主要桌面平台(Windows、Mac OS X 和 Linux),所以编译到 JDK 7 及更高版本的 JavaFX 应用程序也可以在所有主要桌面平台上运行。JavaFX 8 还提供了对 ARM 平台的支持。适用于 ARM 的 JDK 包括 JavaFX 的基础、图形和控件组件。
跨平台兼容性为 JavaFX 应用程序开发人员和用户提供了一致的运行时体验。
在JDK 下载页面上,您可以获得 JavaFX 示例应用程序的 zip 文件。示例应用程序提供了许多代码示例和片段,通过示例展示了如何编写 JavaFX 应用程序。请参阅“如何运行示例应用程序?” 想要查询更多的信息。
4. 主要特点
JavaFX 8 及更高版本中包含以下功能。在 JavaFX 8 版本中引入的项目相应地指出:
-
Java APIs。JavaFX 是一个 Java 库,由用 Java 代码编写的类和接口组成。这些 API 旨在成为 Java 虚拟机 (Java VM) 语言(例如 JRuby 和 Scala)的友好替代品。
-
FXML 和 Scene Builder(场景生成器)。FXML 是一种基于 XML 的声明性标记语言,用于构建 JavaFX 应用程序用户界面。设计人员可以在 FXML 中编码或使用 JavaFX Scene Builder 以交互方式设计图形用户界面 (GUI)。Scene Builder 生成可移植到 IDE 的 FXML 标记,开发人员可以在其中添加业务逻辑。
-
WebView(网络视图)。一个 Web 组件,它使用 WebKitHTML 技术使在 JavaFX 应用程序中嵌入网页成为可能。WebView中运行的JavaScript可以调用Java API,Java API可以调用WebView中运行的JavaScript。JavaFX 8 中添加了对其他 HTML5 功能的支持,包括 Web Sockets、Web Workers 和 Web Fonts,以及打印功能。请参阅向 JavaFX 应用程序添加 HTML 内容。
-
Swing interoperability(Swing 互操作性)。现有的 Swing 应用程序可以使用 JavaFX 功能进行更新,例如丰富的图形媒体播放和嵌入的 Web 内容。
SwingNode
类,使您可以嵌入Swing的内容进JavaFX应用程序,已在JavaFX 8见添加了SwingNode API的javadoc和JavaFX的应用程序中嵌入的Swing内容以获取更多信息。 -
Built-in controls(内置 UI 控件) 和 CSS。JavaFX 提供了开发全功能应用程序所需的所有主要 UI 控件。可以使用标准 Web 技术(例如 CSS)为组件设置外观。DatePicker 和 TreeTableView UI 控件现在可用于 JavaFX 8 版本。有关更多信息,请参阅使用 JavaFX UI 控件。此外,CSS Styleable* 类已成为公共 API,允许对象通过 CSS 设置样式。
-
Modena theme(摩德纳主题)。Modena 主题取代 Caspian 主题成为 JavaFX 8 应用程序的默认主题。通过
setUserAgentStylesheet(STYLESHEET_CASPIAN)
在 Application start() 方法中添加该行,Caspian 主题仍然可供您使用。有关更多信息,请参阅fxexperience.com 上的Modena 博客 -
3D Graphics Features(3D 图形功能)。用于
Shape3D
(Box, Cylinder, MeshView, and Sphere
子类)SubScene, Material, PickResult, LightBase (AmbientLight
和PointLight
子类)的新 API 类SceneAntialiasing
已添加到 JavaFX 8 的 3D 图形库中。Camera
此版本中还更新了 API 类。欲了解更多信息,请参阅入门JavaFX的3D图形文件和相应的API的javadoc的javafx.scene.shape.Shape3D
,javafx.scene.SubScene, javafx.scene.paint.Material, javafx.scene.input.PickResult
和javafx.scene.SceneAntialiasing
。 -
Canvas API(画布 API)。Canvas API 支持直接在 JavaFX 场景区域内进行绘图,该区域由一个图形元素(节点)组成。
-
Printing API(打印 API)。该
javafx.print
包已添加到 Java SE 8 版本中,并为JavaFX 打印 API提供公共类。 -
Rich Text Support(富文本支持)。JavaFX 8 为 JavaFX 带来了增强的文本支持,包括双向文本和复杂文本脚本,例如控件中的泰语和印度语,以及文本节点中的多行、多样式文本。
-
(Multitouch Support)多点触控支持。JavaFX 根据底层平台的功能提供对多点触控操作的支持。
-
Hi-DPI Support(高 DPI 支持)。JavaFX 8 现在支持 Hi-DPI 显示。
-
Hardware-accelerated graphics pipeline(硬件加速的图形管道)。JavaFX 图形基于图形渲染管道(Prism)。JavaFX 提供流畅的图形,当与支持的图形卡或图形处理单元 (GPU) 一起使用时,可以通过 Prism 快速呈现。如果系统不具有 JavaFX 支持的推荐 GPU 之一,则 Prism 默认使用软件渲染堆栈。
-
Higt-performance media engine(高性能媒体引擎)。媒体管道支持 Web 多媒体内容的播放。它提供了一个基于 GStreamer 多媒体框架的稳定、低延迟的媒体框架。
-
Self-contained application deployment model(自包含的应用程序部署 模型)。自包含的应用程序包具有所有应用程序资源以及 Java 和 JavaFX 运行时的私有副本。它们作为本机可安装包分发,并提供与该操作系统本机应用程序相同的安装和启动体验。
5. 我可以使用 JavaFX 构建什么?
使用 JavaFX,您可以构建多种类型的应用程序。通常,它们是跨多个平台部署的网络感知应用程序,并在具有音频、视频、图形和动画的高性能现代用户界面中显示信息。
6. 初试在eclipse中运行JavaFX示例应用程序
本节中的步骤解释了如何下载和运行可通过 Java 平台 单独下载的示例应用程序。
首先要有一个eclipse和JDK,然后,在工具栏的Help->Install New Software
点击Add,输入以下内容:
Name:ec(fx)lipse
Location:http://download.eclipse.org/efxclipse/updates-released/3.6.0/site/