文档



JavaFX:开始使用JavaFX

1 JavaFX概述

本章提供了使用JavaFX API构建的应用程序类型的概述,以及从哪里下载JavaFX库以及有关正在提供的关键JavaFX功能的高级信息。

JavaFX是一组图形和媒体包,使开发人员能够设计、创建、测试、调试和部署在不同平台上运行的丰富客户端应用程序。

请参阅了解JavaFX架构章节,了解JavaFX平台架构,并简要介绍用于媒体流、Web渲染和用户界面样式的JavaFX API。

JavaFX应用程序

由于JavaFX库是作为Java API编写的,因此JavaFX应用程序代码可以引用任何Java库的API。例如,JavaFX应用程序可以使用Java API库访问本地系统功能并连接到基于服务器的中间件应用程序。

JavaFX应用程序的外观和感觉可以自定义。层叠样式表(CSS)将外观和样式与实现分离,使开发人员可以专注于编码。通过CSS,图形设计师可以轻松自定义应用程序的外观和样式。如果您具有Web设计背景,或者希望将用户界面(UI)和后端逻辑分离,那么可以使用FXML脚本语言开发UI的呈现方面,并使用Java代码进行应用程序逻辑。如果您喜欢在不编写代码的情况下设计UI,则可以使用JavaFX Scene Builder。在设计UI时,Scene Builder会创建可移植到集成开发环境(IDE)的FXML标记,以便开发人员可以添加业务逻辑。

可用性

JavaFX API作为Java SE Runtime Environment (JRE)和Java Development Kit (JDK)的一个完全集成的功能可用。由于JDK适用于所有主要的桌面平台(Windows、Mac OS X和Linux),因此编译为JDK 7及更高版本的JavaFX应用程序也可以在所有主要的桌面平台上运行。JavaFX 8还提供了对ARM平台的支持。JDK for ARM包括JavaFX的基本、图形和控件组件。

跨平台兼容性为JavaFX应用程序开发人员和用户提供了一致的运行时体验。Oracle确保在所有平台上同步发布和更新,并为运行关键任务的公司提供了广泛的支持计划。

JDK下载页面上,您可以获取JavaFX示例应用程序的zip文件。示例应用程序提供了许多代码示例和片段,通过示例展示如何编写JavaFX应用程序。有关更多信息,请参见"如何运行示例应用程序?"

主要特性

以下是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生成的FXML标记可以被移植到一个集成开发环境(IDE),开发人员可以在其中添加业务逻辑。

  • WebView. WebView是一个使用WebKitHTML技术的Web组件,可以在JavaFX应用程序中嵌入网页。在WebView中运行的JavaScript可以调用Java API,而Java API也可以调用在WebView中运行的JavaScript。JavaFX 8中增加了对其他HTML5功能的支持,包括Web Sockets、Web Workers、Web Fonts和打印功能。详见向JavaFX应用程序添加HTML内容

  • Swing互操作性. 现有的Swing应用程序可以通过添加JavaFX功能(如丰富的图形媒体播放和嵌入的Web内容)进行更新。在JavaFX 8中添加了SwingNode类,可以将Swing内容嵌入到JavaFX应用程序中。详见SwingNode API javadoc在JavaFX应用程序中嵌入Swing内容获取更多信息。

  • 内置UI控件 和CSS. JavaFX提供了开发完整功能应用所需的所有主要UI控件。组件可以使用标准的Web技术(如CSS)进行皮肤化。JavaFX 8版本中新增了DatePicker和TreeTableView UI控件。详见使用JavaFX UI控件获取更多信息。此外,CSS Styleable*类已成为公共API,允许对象通过CSS进行样式化。

  • Modena主题. Modena主题取代了Caspian主题成为JavaFX 8应用程序的默认主题。通过在应用程序的start()方法中添加setUserAgentStylesheet(STYLESHEET_CASPIAN)行,仍然可以使用Caspian主题。详见fxexperience.com的Modena博客获取更多信息。

  • 3D图形功能. JavaFX 8的3D图形库中新增了一些API类,包括Shape3DBox, Cylinder, MeshView和Sphere子类)、SubScene, Material, PickResult, LightBase(AmbientLight和PointLight子类)和SceneAntialiasing。此外,此版本还更新了Camera API类。详见入门JavaFX 3D图形文档和相应的javafx.scene.shape.Shape3D, javafx.scene.SubScene, javafx.scene.paint.Material, javafx.scene.input.PickResultjavafx.scene.SceneAntialiasingAPI javadoc获取更多信息。

  • 画布 API。画布 API 允许在 JavaFX 场景的一个图形元素(节点)内直接绘制。

  • 打印 API。在 Java SE 8 发布中添加了 javafx.print 包,提供了 JavaFX 打印 API 的公共类。

  • 富文本支持。JavaFX 8 增强了对文本的支持,包括控件中的双向文本和复杂文本脚本(如泰语和印度语),以及文本节点中的多行、多样式文本。

  • 多点触控支持。JavaFX 支持基于底层平台的多点触控操作。

  • 高 DPI 支持。JavaFX 8 现在支持高 DPI 显示。

  • 硬件加速图形渲染。JavaFX 图形基于图形渲染管道(Prism)。当与支持的显卡或图形处理单元(GPU)一起使用时,JavaFX 提供平滑且快速的图形渲染。如果系统不具备 JavaFX 支持的推荐 GPU 之一,则 Prism 默认使用软件渲染堆栈。

  • 高性能媒体引擎。媒体管道支持播放网络多媒体内容。它提供了一个基于 GStreamer 多媒体框架的稳定、低延迟的媒体框架。

  • 自包含应用部署模型。自包含应用程序包含所有应用程序资源和 Java、JavaFX 运行时的私有副本。它们以本机可安装的包的形式分发,并为该操作系统提供与本机应用程序相同的安装和启动体验。

我可以用JavaFX构建什么?

使用JavaFX,您可以构建许多类型的应用程序。通常,它们是网络感知的应用程序,可以在多个平台上部署,并在高性能的现代用户界面中显示音频、视频、图形和动画。

表1-1显示了一些包含在JavaFX 8.n版本中的示例JavaFX应用程序的图像。

表1-1 示例JavaFX应用程序

示例应用程序 描述

Ensemble应用程序快照的缩略图版本
图1-1 Ensemble应用程序快照的描述

JavaFX Ensemble8

Ensemble8是一个示例应用程序的画廊,展示了各种JavaFX功能,包括动画、图表和控件。您可以在所有平台上查看和与每个运行的示例进行交互,并阅读其描述。在桌面平台上,您可以复制每个示例的源代码,调整多个示例中使用的示例组件的属性,并在连接到互联网时跟随链接到相关的API文档。Ensemble8还可以在JavaFX for ARM上运行。

Sales Dashboard应用程序快照的缩略图版本
图1-2 Modena应用程序快照的描述

Modena

Modena是一个示例应用程序,演示了使用Modena主题的UI组件的外观和感觉。它可以让您对比Modena和Caspian主题,并探索这些主题的各个方面。

Sales Dashboard应用程序快照的缩略图版本
图1-3 3D Viewer应用程序快照的描述

3D Viewer

3DViewer是一个示例应用程序,允许您使用鼠标或触摸板导航和查看3D场景。3DViewer具有用于OBJ和Maya文件中部分功能的导入器。还提供了导入Maya文件动画的能力。(请注意,在Maya文件的情况下,保存为Maya文件时应删除所有对象的构造历史。)

3DViewer还具有将场景内容导出为Java或FXML文件的能力。


如何运行示例应用程序?

本节中的步骤说明了如何下载和运行作为Java平台(JDK 8)的独立下载提供的示例应用程序。

注意:

在运行JavaFX示例应用程序之前,您需要在计算机上安装JavaFX运行时库。在执行以下步骤之前,请安装JDK 8的最新版本JRE的最新版本

下载并运行示例应用程序的步骤如下:

  1. 访问Java SE下载页面,网址为http://www.oracle.com/technetwork/java/javase/downloads/

  2. 向下滚动,找到JDK 8和JavaFX演示和示例部分。

  3. 点击演示和示例下载按钮,进入下载页面。

  4. 在Java SE Development Kit 8下载页面上,向下滚动到JavaFX演示和示例下载部分。

  5. 下载适用于正确操作系统的zip文件,并解压文件。

    创建了javafx-samples-8.x目录,并包含可用示例的文件。示例的NetBeans项目位于javafx-samples-8.x\src目录中。

  6. 双击示例的可执行文件。

    例如,要运行Ensemble8预构建的示例应用程序,请双击Ensemble8.jar文件。

如何在IDE中运行示例?

您可以使用多个Java开发IDE来开发JavaFX应用程序。以下步骤说明了如何在NetBeans IDE中查看和运行源代码。

在NetBeans IDE中查看和运行示例源代码的步骤如下:

  1. 按照上述说明下载示例并解压文件。

  2. 从NetBeans 7.4或更高版本的IDE中,加载要查看的示例的项目。

    1. 文件菜单中,选择打开项目

    2. 打开项目对话框中,导航到列出示例的目录。导航路径类似于:

      ..\javafx_samples-8.x-<platform>\javafx-samples-8.x\src
      
    3. 选择要查看的示例。

    4. 点击打开项目按钮。

  3. 在项目窗口中,右键单击刚刚打开的项目,选择运行
    注意输出窗口会更新,示例项目会被运行和部署。

1 JavaFX概述(发布版8)

如何创建JavaFX应用程序?

由于JavaFX应用程序是用Java语言编写的,您可以使用您喜欢的编辑器或任何支持Java语言的集成开发环境(IDE)(如NetBeans,Eclipse或IntelliJ IDEA)来创建JavaFX应用程序。

创建JavaFX应用程序的步骤:

  1. 访问Java SE下载页面:http://www.oracle.com/technetwork/java/javase/downloads/,下载带有JavaFX 8.n支持的Oracle® JDK 8。该页面还提供了经过认证的系统配置和发行说明的链接。

  2. 使用Getting Started with JavaFX Sample Applications创建简单的应用程序,演示如何使用布局、样式表和视觉效果。

  3. 使用JavaFX Scene Builder设计JavaFX应用程序的用户界面,无需编码。您可以将UI组件拖放到工作区,修改其属性,应用样式表,并将生成的代码与应用程序逻辑集成。

    1. 从JavaFX下载页面下载JavaFX Scene Builder:http://www.oracle.com/technetwork/java/javase/downloads/

    2. 按照Getting Started with JavaFX Scene Builder教程了解更多信息。

资源

使用以下资源了解更多关于JavaFX技术的信息。

关闭窗口

目录

JavaFX: JavaFX入门

展开 折叠