JavaFX是一个强大的图形和多媒体处理工具包集合,它容许开发者来设计、建立、测试、调试和部署富客户端程序,而且和Java同样跨平台。java
因为JavaFX库被写成了Java API,所以JavaFX应用程序代码能够调用各类Java库中的API。例如JavaFX应用程序可使用Java API库来访问本地系统功能而且链接到基于服务器中间件的应用程序。node
JavaFX能够自定义程序外观。层级样式表(CSS)将外观和样式与业务逻辑实现进行了分离,所以开发人员能够专一于编码工做。图形设计师使用CSS来方便地定制程序的外观和样式。若是你具备Web设计背景,或者你但愿分离用户界面(UI)和后端逻辑,那么你能够经过FXML脚本语言来表述图形界面而且使用Java代码来表述业务逻辑。若是你但愿经过非编码的方式来设计UI,则可使用JavaFX Scene Builder。在你进行UI设计时,Scene Builder会建立FXML标记,它能够与一个集成开发环境(IDE)对接,这样开发人员能够向其中添加业务逻辑后端
JavaFXAPI已经完整地集成到了JRE和JDK之中。因为JDK在全部的主要桌面平台(Windows、Mac OS X和Linux)上都是可用的,使用JDK7及之后版本编译的JavaFX应用程序也能够在全部的主要桌面平台上运行。对ARM平台的支持已经在JavaFX8中可用了。支持ARM的JDK包括JavaFX的基础组件、图形组件和控件组件。服务器
跨平台兼容性使得JavaFX应用的开发人员和用户均可以获得统一的运行时体验。Oracle确保在全部的平台上同步发布和更新,而且为运行关键性应用的公司提供了一个扩展支持程序。框架
下面的特性都被包含在了JavaFX8及之后发布版本中。在JavaFX8中引入的内容包括:工具
● Java API:JavaFX是一个Java库,包括用Java写成的类和接口。其API对基于JVM的语言也是友好的,例如JRuby和Scala。性能
● FXML和Scene Builder:FXML是一种基于XML的声明式标记语言,用于描述JavaFX应用程序的用户界面。设计师能够在FXML中编码或者使用JavaFX Scene Builder来交互式地设计图形用户接口(GUI)。Scene Builder所生成的FXML标记能够与IDE对接,这样开发者能够添加业务逻辑。测试
● WebView:它是一个使用了WebKitHTML技术的Web组件,可用于在JavaFX应用程序中嵌入Web页面。在WebView中运行的JavaScript能够方便地调用JavaAPI,而且JavaAPI也能够调用WebView中的JavaScript。对附加的HTML5特性的支持,包括Web Socket、Web Worker、Web Font、打印功能等都被添加到了JavaFX8中。ui
● 与Swing互操做:现有的Swing程序能够经过JavaFX的新特性升级,例如多媒体播放和Web 内容嵌入。在JavaFX8中加入了SwingNode类,它能够将Swing内容嵌入到JavaFX程序中。编码
● 内置的UI控件和CSS:JavaFX提供了开发一个全功能应用程序所需的全部主要控件。这些组件可使用标准的Web技术如CSS来进行装饰。在JavaFX8中,DatePicker和TreeView UI控件是可用的,而且可使用标准的Web技术如CSS来进行美化。
● Modena主题:在JavaFX8中,提供了新的Modena主题来替换原来的Caspian主题。不过在Application的start()方法中,能够经过加入setUserAgentStylesheet(STYLESHEET_CASPIAN)代码行来继续使用Caspian主题。在com的Modena blog中找到更多信息。
● 3D图像处理能力:在JavaFX8中的3D图像处理API中加入了一些新的API,包括Shape3D (Box, Cylinder, MeshView和Sphere 子类),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子类),SceneAntialiasing等。在本次发布中Camera类API也获得了更新。
● Canvas API:Canvas API容许在由一个图形元素(node)组成的JavaFX场景(Scene)的一个区域中直接绘图。
● Printing API:JavaFX 8中加入了print包而且提供了打印功能公共类。
● Rich Text支持:JavaFX提供了更为强大的文本支持能力,包括双向文字(例如阿拉伯语)、复杂文字脚本,例如Thai、Hindu文字,而且支持多行、多种风格的文本节点。
● 多点触摸:基于底层平台的功能JavaFX提供了对多点触摸的支持。
● Hi-DPI支持:JavaFX 8如今支持Hi-DPI显示。
● 图形渲染硬件加速:JavaFX图像均基于图形渲染流水线(Prism)。JavaFX提供更为平滑的图像而且在显卡或图像处理单元(Graphics processing unit,GPU)支持的状况下经过Prism来得到更快的渲染速度。若是GPU不支持对应的图形处理功能,则Prism会使用软件渲染方式来替代。
● 高性能多媒体引擎:媒体流水线支持对Web媒体内容的播放。它提供了一个基于GStreamer多媒体框架的稳定、低延迟的多媒体处理框架。
● 自包含的应用部署模型:自包含应用包具备应用所需的全部资源、包括一个Java和JavaFX运行时的私有拷贝。它们可做为操做系统原生安装包发布,并提供与原生应用相同的安装和运行体验。
本文连接文档:http://www.javafxchina.net/blog/2015/06/doc01_overview/