JavaFX是运行在JVM上的脚本语言,能够帮助Java开发者快速编写RIA富互联网应用。
自2007年JavaOne大会上推出以来,由Chris Oliver创建的F3演变而来的JavaFX目前最新为1.1.1版本。在语法上,JavaFX融合了JavaScript、ActionScript等脚本语言的特征,当然如果经常接触Java代码,那么一定会对JavaFX的语法感到非常熟悉。
RIA技术的雏形在2002年Micromedia收购ColdFusion后首次出现,尽管其后以无页面刷新技术著称的Ajax因Google等厂商推动而变得流行,但在Micromedia被Adobe并购后,凭借在Flash技术上多年积累的经验和广大的用户群,Adobe的Flex和AIR(曾被称为Apollo的跨平台桌面应用开发库)又一次在RIA纷争中取得先机。
较之Flex、Ajax、Silverlight等主流的RIA技术,尽管JavaFX起步较晚,但在技术上自有其独到之处。除了可以使用JavaFX SDK提供的特效、动画功能之外,在JavaFX的代码中可以无缝调用JavaAPI和第三方Java类库,而Flex的ActionScript则没有多线程支持,尽管这在远程站点通讯调用时没有问题,但在编写客户端应用时则有其局限之处。并且,有开发者正尝试在Java代码中反向调用JavaFX定义的类,以便在应用的MVC分层中,表现层使用JavaFX代替Swing,而逻辑和控制层则由Java代码实现。
除此之外,已发布的JavaFX Mobile,让所有支持JavaME的移动终端成为展现JavaFX最富有表现力的平台。借助于JavaME的广泛应用,JavaFX在移动终端平台的优势是Flex和Silverlight短期内不容易超越的。
在IDE支持方面,NetBeans提供的JavaFX模块中,已集成了不少可拖拽添加的JavaFX组件。但在用户界面控件方面,较之Flex与Silverlight的开发工具还相对薄弱。不过Sun已计划发布JavaFX的2.0版本,并提供完整的用户界面组件,包含容器、导航条和布局控制等各个层面。
入手JavaFX的最好方式,是参考NetBeans JavaFX支持模块中自带的十多个示例项目,如果你熟悉Java,又想尝试RIA开发,那么从JavaFX开始将是个不错的选择。