InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

JavaFX:当前的状态和不久的将来

作者 Jon Rose 译者 张凯峰 发布于 2008年1月19日

领域
架构 & 设计,
企业架构,
语言 & 开发
主题
富客户端/桌面 ,
Java ,
RIA ,
架构 ,
Web 2.0
标签
JavaFX Mobile ,
JavaFX脚本 ,
开源Java
在去年十月份,InfoQ.com发布了一篇名为“JavaFX概览”的文章。Sun Microsystem的Chet Haase 接着又向InfoQ.com分享了一些JavaFX为Java平台带来的其他方面影响的细节。

Haase通过一些可能在将来构建RIA应用时有用的范例,向InfoQ.com的读者简要介绍了JavaFX:
JavaFX脚本是一门基于Java平台的新语言。它提供一些新的能力以及新的语法来使得实现某些功能更加容易,比如构建图形和GUI应用程序。

很 明显,现在是可以使用Java的Swing和Java 2D库来编写丰富、动态的GUI应用程序,但并不是那么容易做到。JavaFX脚本让这样的应用程序更加容易地实现。对于Java开发者,这意味着让他们 的工作更加简单,仍然可以借助于他们已经具备的Java平台开发的知识和技能。而对于其他那些不使用Java平台的开发者而言,意味着他们现在可以充分利 用平台的丰富特性和强大之处,并且使用一门他们更容易学习和使用的语言。
关于OpenJFX项目的当前状态:
OpenJFX 是一个站点,在它上面,JavaFX的不同部分正在以开放的形式进行开发。比如说,用于JavaFX脚本的编译器正在OpenJFX站点上进行开发,因此有兴趣试试早期版本的开发者可以获得最新的拷贝,甚至能为开发小组提出自己的建议和反馈。

OpenJFX上还寄宿或关联着其他一些正在进行或即将成立的项目。比如Scene Graph项目 ,一个使能JavaFX脚本的图形、GUI和动画功能的运行时库。

最后,OpenJFX也是项目当前文档的来源;指南、参考资料和一些指向blog及其他资源的链接都可以在OpenJFX站点上找到。
Haase这样描述JavaFX的组件模型:
我把JavaFX脚本组件模型看作是Swing++--,如果这条语句能编译通过的话:)。也就是说,JavaFX脚本的许多组件,比如button,直接依赖底层的Swing平台的功能。因此,JavaFX脚本的button其实就是个Swing的JButton。

但有一些不同之处非常重要。比如:

  • 如果没有必要传播某个Swing组件中恰巧是public的方法和域时,这个对象的JavaFX版本就可以选择不再拥有那些域,从而更易于理解和编程。
  • JavaFX脚本组件层功能建立于底层的组件之上,从而能够为FX运行时提供可以利用的底层组件的功能。比如,JavaFX脚本语言的 一个新的很酷的功能就是能够触发任意对象的域值的变化。这就确保像button这样任意底层组件的FX包装类都能把变化正确地传播到JavaFX脚本层。
  • JavaFX脚本也提供了一些Swing中并不包含的组件和其他GUI对象。比如,当前的JavaFX脚本版本提供了VBox和HBox容器对象,用以在它们的子对象上施以简单的垂直(VBox)或水平(HBox)布局约束。

Hasse还被问及对于JSF的普遍批评(无论公平与否)中的一个——它提供了一个构建UI组件的框架,但没有直接提供所有用于简单构建高质量UI的组件。他被问到JavaFX是怎样以不同的方式解决这个问题的:
我无法解决关于JSF的问题(就我个人而言不是很了解JSF),但JavaFX会很乐意能够利用Java平台组件模型的强大力 量。Swing的优势之一是它丰富的GUI组件,以及添加自定义组件的灵活性。既然JavaFX脚本层是在Swing之上,这项优势自然就被继承了下来。
Haase谈到部署JavaFX应用程序:
JavaFX脚本应用程序使用和Java应用程序相同的部署方式:作为独立运行的应用程序,或者运行在浏览器中的applet,或者是Java Web Start应用程序(这样可以通过网络来部署,但本质上是在一个安全的沙箱环境中独立运行在桌面上)。

Haase还被问到关于开发一个类似于Silverlight或Flash播放器的浏览器插件的计划问题:
我们已经拥有一个Java的浏览器插件,也就是我们所说的“Java插件”。JavaFX脚本应用程序可以像Java程序那样使 用这个插件。但是,我们现在正在通过一些非常重要的方式来修改对这个插件的支持,尤其在向着支持更多面向消费者的JavaFX应用程序的方向去努力。比 如,对于Java和JavaFX应用程序的启动时间方面的改善,将会使启动时间比现在有显著的提高。而且,我们也正在重写插件代码,以使其更加健壮和灵 活。这两个改进会出现在“Java SE 6,Update 10”的发布版中,你可以在下面这个站点获得早期的版本:https://jdk6.dev.java.net/6uNea.html

对于JavaFX和Adobe Flex/AIR,Silverlight及其他富因特网平台在特性、部署和成熟度方面的比较:
我觉得我现在宁愿不要直接对它们作出比较,因为我们现在还处于JavaFX的开发中期,所以任何相对于已经发布的产品的比较都是不成熟的。我能说的是JavaFX在RIA领域真正的优势之一在于它的强大功能和它所基于的底层Java平台的高成熟度。
在最后:
我们对来自于社区的帮助很感兴趣。欢迎登录OpenJFX站点,获取最新的版本,体验它的功能,编写一些JavaFX脚本应用程序,并把反馈发送给我们!

衷心希望OpenJFX项目能够达到它所有的目标,并给构建RIA应用的Java开发者一个强有力的选择。

查看英文原文:JavaFX: Current Status and What’s Upcoming

译者 张凯峰 InfoQ中文站编辑,有多年软件开发和测试经验,热衷参与技术社区与技术传播。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。