欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

Java FX 技术预览:据说正式发布日期为12月2日

程序员文章站 2022-05-09 16:26:08
...
Java FX 1.0的正式发布日期据说确定为12月2日,目前最终发布版本在紧张测试中。Silverlight已经发布2.0版本,Flex 3.0也正式发布了。Sun需要加油了。

JavaFX 技术预览:

Charles Humble 说道:由于Java技术的成功,sun希望在企业平台市场之外也能取得胜利,比如需要跨平台支持的移动开发,安全性和稳定性要求很高的领域,Java也能成为一个优秀的选择。但是某些开发任务从一些特殊定制的语言中获益,由于Java是一个通用语言,反而不那么适用。比如现代GUI用户图形界面设计提出了技术和管理两方面的挑战。

在管理方面,复杂的用户界面典型的需要一系列不同的角色,图形设计师,信息架构师,动画制作和开发。某些人也许同时同时具备这些能力,但是这样的人非常少,更多的情况是不同的人处于不同的角色,因此协调不同的角色工作成为一个大问题。在技术方面,现代UI用户界面设计经常需要高层次的技术知识,一个尖端的工具包类似Swing面对一个开发者解决一些复杂的控制之前,他们需要学习如何创建UI用户界面,界面的响应严重依赖协作。多线程Java开发是非常简洁的,但是结果是许多模板代码不得不管理转换和动画。

作为Adobe Flex和微软Silverlight的竞争对手,Sun JavaFX 是sun针对Java开发者推出的战略。JavaFX目标是提供新的基础平台来创建跨桌面,跨网络,跨移动设备的RIA富互联网应用。它也是Sun在java产品市场战略中重要的改变,sun期望看到用JavaFX创建完整的解决方案,而不是专注于独立底层架构。现在的JavaFX技术预览提供了两个重要组件:Project Nile,这是专注于设计者/开发者工作流,以及JavaFX Script,一个新的declarative language声明式语言,来编写java GUI 应用。

不管是Flex 还是 Silverlight 都是用XML作为声明式语言(MXML 和 个别使用XAML),sun选择开发一个新的脚本语言,JavaFX Script。Sun工程师Joshua Marinacci说道:sun没有计划添加XML语言支持。我们发现很多开发者非常讨厌使用XML,希望一个更加简洁的声明式语言来书写图形化界面。我们想熟悉JavaScript的开发者会发现JavaFX Script非常容易使用。

JavaFX Script是一个声明式,静态,编译的 特殊领域语言Domain Specific Language (DSL),基于Java基础和宏编辑之上来创建用户界面,使用目前的Java包能获得JavaFX环境。它目标是两种不同用户:

1。Java 开发者,已经熟悉Swing和寻找一种快速有效方式创建富界面应用。

2。web开发者,更加熟悉其他脚本语言,比如JavaScript 或 ActionScript。

JavaFX Script 拥有强大的生产力,包含一些方便的描述功能,用来插入和删除操作(比如insert 10 before x[1]),其他常见问题被优雅的解决,绑定UI组件到后台数据非常简单,比如语言通过一个简单的类似监听者结构,支持当变量改变触发一个动作。

Sun特别强调语言的可读性,容易管理开发者的代码。结果之一就是JavaFX Script使用类似BASIC的布尔操作符取代在Java和JavaScript中都使用的C风格的操作符。比如JavaFX Script使用'and'表示&&,'or'表示||,也使用'not'虽然也支持'!'。它对于目标用户的确很容易使用。

JavaFX Script也有其他的惊喜,比如支持使用目前保留的关键字创建变量和函数,另外JavaFX Script也支持多重继承,而不是采用Java的interface接口机制。Marinacci说道:我们发现GUIs的上下文非常简单,在大多数情况下,开发者不会使用任何子类,所以这不会成为一个问题,子类主要提供给组件开发者使用。

JavaFX翻修了一系列与Java类似的定义,一个注意的地方就是JavaFXDoc 相当于Javadoc,JavaFXDoc使用XML取代HTML作为输出格式。目前提供的XHTML 1.0格式还支持输出PDF格式文件或者进入数据库创建知识中心。新的输出格式不使用frames,容易通过CSS定义,也允许一些基本的过滤创建档案。这里是一个例子:here。JavaFXDoc 面向产品化,还支持inline exapmles通过@examples标签。在自动生成的时候提供Example代码的语法高亮。文档工具编译运行example,并生成截屏,进入自动生成的文档,而且在代码修改后,能保持同步更新最新的截屏。基于Java 7的JavaFXDoc还将会提供更强大的搜索功能。

JavaFX Script能从任何现存的java包中获取,包括新的APIs,两个核心部分是media 媒体APIs(目前提供作为本地库,在version 1正式发布时,未来将被 On2 TrueMotion video codecs 取代 )以及scene graph 场景图形API。scene graph API是以前Swing提供GUI后台支持的升级部分,这里GUI作为视觉节点层创建场景和应答用户界面。scene graph模块支持效果,*变形(放大缩小和旋转),以及动画。scene graph保留graphics object图形对象和在场景中画下它们,如果刷新事件发生,处理重画细节,缓存和许多其他类似即时模式比如Java2D。这个抽象层也允许API处理所有自动优化比如重载纹理和图形卡的元素。scene graph API和JavaFX紧密关联,但是你也可以在普通Java应用中使用它们。Sun分隔了APIs为三部分,其中两个现在已经可以使用:common profile通用部分在每个设备上对于所有的API都是可用的,包括scene graph API 和 media components媒体组件,desktop profile桌面部分代表更加类似于Swing的组件,第三个是mobile profile移动部分将在2009年发布,使得JavaFX成为一个完整的解决方案。

这里有两个明显的common API遗漏,比如这里没有Table, TabbedPane, TextArea, 和 BookPanel组件在JavaFX 预览版本中的类似替代。新的版本应该会更加完整和稳定。Marinacci说道:我们计划移动更多Swing组件到子类节点,所以你能*混合Swing组件和图形节点,而不需要使用修改类。成为高级类(比如tree和table)只有存在于Desktop桌面中。决定开发一个新的语言,而不是跟随Adboe的领导是一个大胆的决定,但是我认为这是一个好的决定。

JavaFX Script是一个使用起来很舒服的语言,在目前应用之外也许还有其他用处,比如JavaFX数据格式(JavaFX data format FXD), project Nile的重要部分,使用JavaFX Script的子集申明格式来代表图形资源。

对于Silverlight,微软使用自己的工具包(Expression suite),直接取代Adobe的Creative Suite 工具包所提供的功能。Sun也在开发自己的工具,希望明年能够发布,可以使用Project Nile作为第一个专注点来支持流行的用Adobe的Illustrator 和 Photoshop 现存工具开发的资源。

操作系统方面,同时支持OS X和Windows,project Nile包括Adobe Illustrator 和 Photoshop CS3 插件和 SVG转换器,和一个JavaFX数据格式(JavaFX data format FXD)浏览器。一个设计者使用任何一个Adobe工具创建他们的图形资源,能够导入文件到FXD中。浏览器工具允许用户查看图形文件确认文件正确。在JavaFX script语言中,开发者能够使用多层独立的层来形成一个单一的图形资源文件。这个功能对于图形文件资源非常有用,但是对于提供用户基本组件方面仍然有些问题。Sun试图通过CSS和使用CSS的skin Swing组件来解决问题,这部分也将在JavaFX 1中正式发布。

支撑所有这一切的是Java 6 Update 10,最新的JRE,提升了部署,性能,内存使用和界面(使用新的Nimbus),所有这些帮助Swing作为桌面开发平台更加强大。不幸的是,对于开发者仍然有限制。Sun让update 10在Linux和Solaris平台上的支持和Windows一样好,而且不同版本关键性的实现比如applet quickstarter快速启动, kernel installer核心安装, 和 direct3D pipleine 管道等只在windows平台有限制。此外,Apple选择 在任何64位Intel Macs的OSX 10.5平台限制Java 6。Marinacci着重强调sun已经和Apple一起为提升Java和JavaFX在OSX上的支持而努力,但是没有提供更多细节。(Apple对Java一向不太友好,这种状况什么时候改变?)

Marinacci给出了最新的下载细节:

引用
我们每个月都有4千万到5千万的JRE下载,有几个月甚至超过一亿。95%以上下载都是JavaSE 6。


Flash和Silverlight 都完全关闭了自身所有工具的源代码,以保证开发者转换的竞争壁垒。此外,Adobe提供的很多重要的Flash代码,比如音频和视频编译码器,都是第三方版权代码,所以Adobe很难象Sun开放Java一样开放平台。虽然没有最终发布,Sun已经承诺JavaFX将作为开源软件,在GPL v.2 license许可下发布和编译scene graph APIs。这对于吸引开发者转换平台很有好处,但是JavaFX希望成为一个强大的竞争对手,还需要更多努力。
相关标签: Java JavaFX