JavaFX 2.0 Beta版发布——JavaSE平台全新客户端​层

Oracle面向Java​的富客户端平台JavaFX 2.0​的第一个公测版已经可以下载,同时提供了NetBeans 7的测试版插件。

发布的内容包括:

  1. 用于JavaFX的Java API,是JavaFX 1.0产品线的延续。
  2. 新的图形功能,包含图形引擎(Prism,译为棱镜),结合新的窗口工具包,被称为Glass(玻璃),连接JavaFX平台的独立平台层​与本地操作系统。Prism支持多种显卡硬件加速​,包括NVIDIA、ATI、Intel,基于不同平台使用的不同渲染方法(Windows的DirectX,Mac、Linux还有嵌入式的OpenGL)。当硬件加速不支持时,Prism会使用旧的Java 2D渲染器。
  3. 多媒体引擎,支持基于GStreamer框架的web多媒体内容回放。这个媒体引擎支持MP3、AIFF和WAV的音频文件,以及回放采用VP6视频编码和MP3音频编码的Flash(FLV)视频文件。
  4. web组件,使用WebKit渲染HTML,使用Prism进行硬件加速渲染。
  5. 浏览器插件更新,允许加载基于Prism的JavaFX应用程序。
  6. 新的UI系列组件,例如Charts(图表)、Tables(表格)、Menus(菜单)和Panes(​窗格),所有都这些可以使用CSS设置皮肤。

测试版包含一个选择器的示例,Ensemble(​合集)​是JavaFX主要的取样器。

JavaFX 2.0 Beta版发布——JavaSE平台全新客户端​层_第1张图片

JavaFX 2.0第一版仅支持Windows,虽然系统体系结构设计为跨平台,Oracle也明确将多平台​支持JavaFX:

我们绝对会支持更多的平台,不仅仅是最大的三个(Mac、Linux、Windows)。​实际上Java平台​的价值就是你可以编写跨操作系统和设备的应用。

虽然Flex和Silverlight都是用XML做为其声明语言(具体是MXML和XAML)​ ,JavaFX​最初却包含一个新的DSL,JavaFX脚本。JavaFX脚本虽然有趣,但是却成为开发者进入的障碍,Oracle去年宣布虽然继续投资JavaFX平台,但不会再支持它。一个基于XML声明语言(目前命名为FXML)正在酝酿中,但是它还没有在测试版中使用。

缺乏JavaFX脚本​让API看起来更详细,但是变化并没有预期的明显。一方面,javafx.builders包提供了257个构建,涵盖了所有API。另外,在Java 8中支持Lambda将会有很大差异。Oracle富客户端软件架构师Richard Bair曾经告诉InfoQ:

JavaFX设计适合于Java SE 8中"lambda"语言特性计划。目前的计划和目标是lambdas有助于"单一抽象方法"接口。我们在JavaFX中设计新的Java API也遵循这个模式,这样当lambdas可用时,它们可以自然迁移使用JavaFX 2.0的API。​

除了Java的支持,JavaFX 2.0 API还被设计为友好地替代JVM语言,例如JRuby(示例)、Scala和Groovy,还有DSLs像基于Visage的JavaFX脚本。​

JavaFX 2.0代表客户端Java产品族最重要的更新,提供了JavaSE平台整个客户端层的替代品。​Osvaldo Pinali Doederlein很早就说过:

我们知道JavaSE已经过时。我不知道有多少人没有认识到这点,如果你不知道,请再检查一些Cindy Castillo的​ JavaFX架构的伟大概述。它不仅仅是一个新的组件库、动画和富媒体。它完全替代AWT[Abstract Window Toolkit,抽象窗口工具集]​、Java2D、Swing、Java Sound、Applets、ImageIO、Accessibility——简而言之,JavaSE平台的整个客户端层。(不,一个JavaFX应用不再使用java.applet API。)Oracle​摆脱大量AWT和基于AWT的一切事物,主要的原因是新浏览器插件更好。

Sun Microsystems高级工程师、Java Swing GUI工具集的创始成员之一Amy Fowler建议,(要使Java成为可行客户端平台)这样的改变是必要的:

用户界面​技术是一个与图形碰撞的过程​。要使Java在长期战略中成为可行的客户端平台,它必须天生能有​你所看到的iPhone/iPad应用那种视觉盛宴。正如我多次指出,使用Swing中Java2D有可能实现一些>(例如Kirill非常好的Trident库),但是这需要非常复杂的操作,这不是天作之合。问题症结在于,Swing植根于传统AWT,而不是集成到2D坐标系中。要解决这个问题需要很多不兼容性改变,一旦你朝这条路走下去,那么,你开始问自己还有哪些不兼容性需要改变...很快新的模型被重新构建,你认识到非常需要新基石。​

虽然​RIA​方面,Adobe的Flash已经占据很久,看起来也会向HTML5和相关技术转移,扩展应用在智能机目前一代和表格中的广泛使用表明,基于Web的应用仍然扮演很重要的角色。当然,Oracle看重Java和Swing在其桌面应用的使用,投资JavaFX 2.0最终也会与Swing 2.0平台一起开发。

查看英文原文:JavaFX 2, a Completely New Client Layer for the JavaSE Platform, Now in Public Beta

你可能感兴趣的:(JavaFX 2.0 Beta版发布——JavaSE平台全新客户端​层)