是Java桌面的新希望么?(2)

  最后我们运行这个动画。可以看到文字上上下下平稳地移动,所以用JavaFX做动画是很简单的。

是Java桌面的新希望么?

图片33(文字说明:动画"Hi From Heise"JavaFX程序运行;文字顺畅地移动)

  在这里提醒各位注意的是,我上文中用的时间表述是“0s”和“2s”,这是因为JavaFX有一个Duration变量类型,它认为时间是数字和时间单元,所以"1ms"是一毫秒。另外一个值得注意的是绑定,它不会绑到UI声明中,而是更加常规的语言机理。比如这段代码:

var x=10;
    var y=20;
    var z=bind x+y;

  变量z的结果必定是x+y,无论x或者y如何变化z都会更新。这只是JavaFX语言诸多特性中的一部分,对交互式开发、动态用户界面更加有效。

  所以Sun推出的JavaFX功能强大而且与Java兼容,同时适合构建富互联网应用,这其实也是未来桌面应用开发工具所需要的部分。但是还有一个重要的问题Sun需要解决:配置。 Java在web上的配置一直被认为是一件很痛苦的事情。Applets的支持不均衡,运行在浏览器上有时会将浏览器拖得非常慢,而且有时与浏览器不相容。除此之外,由于向后兼容(backwards compatibility),老版本的Java各个独立存在,让人很是莫不着头脑。尽管这些年来Sun做了很多工作来修补而且进步显著,但所有的这些不良的性能还是导致Java在浏览器端的名声很坏。

  Java Web Start就是Sun的修复工作之一,它允许开发者配置桌面Java应用,而且可以通过web自动升级。开发者可以创建一个JNLP文件来web启动他们的应用,JNLP文件可以被本地的Java获取,然后下载应用的jar文件,创建一个桌面的快捷方式并管理应用的运行。由于JNLP不在浏览器内工作,所以不会将应用植入到web页面中。

  今年初发布的Java 6 Update 10第一次成为模块化的下载,它有一个很小的Java kernel,可以自动下载任何开发者需要的组件。从Java6U10中也可以看到,通过在Java运行时间中补丁升级,Sun正在去除老版本的Java。

  通过合并applet和web start,Java 6 Update 10同样修改了配置问题。现在,一个applet不仅能够指向服务器上的原始jar文件,而且还能指向JNLP文件,允许applet在客户端浏览器上保存和升级。而且升级可以延缓或者作为后台程序运行,从而新型applet能够及时启动,开发者也不再需要等待升级的下载。Applets现在也在浏览器外运行,所以不再拖慢浏览器的性能。一个小的不惹人注意的JVM现在运行在浏览器内扮演一个小型服务器层,一个单独的JVM实际在运行applet的代码。浏览器内的进程独立早已成为普遍采用的方法,所以Java不过是在学习浏览器而已。

  Sun通过弥补这两个缺陷即:UI代码的复杂性和配置问题,给开发者提供了一个潜能巨大的平台。而且提升了NetBeans 6.5,创建一个编辑器能够支持JavaFX代码,给开发者一个成熟的、基于开源的IDE,同时又能够处理Java代码。
  Sun还推出了工具能够将Illustrator和Photoshop的内容转换成JavaFX代码,从而集成优质图形内容变得更加简单.

是Java桌面的新希望么?

图片44(文字说明:JavaFX的Production Tools将 Illustrator导成 JavaFX代码)

  但也不全是好消息。尽管Sun对开源承诺,但只有编辑器、图形库和工具的部分是在GPL2下许可的。而JavaFX的运行时间是闭源(Closed source),未来会引起很多问题。JavaFX的设计是跨平台的,随着JavaFX 1.0 的发布JavaFX Mobile也出炉,但只有Windows和Mac OS X在发布默认得到支持,尽管这覆盖了大部分的操作系统用户,但是Linux和Solaris仍在苦苦地等待JavaFX的支持。Sun可以辩护他们正在整合专利编解码以得到媒体支持,并最终可以发布在两个平台上,而不是采用“Windows优先”的态度。

  JavaFX能否取代Flash?不可能,因为Flash已经无处不在了,但是JavaFX能够匹敌Adobe的AIR和微软的Silverlight。Sun能否从JavaFX中得到人们的好印象还尚未可知,但无论如何开发者都会感谢Sun给富应用开发带来的另外一种方法,无论有没有Swing组件。唯一有一件事情可以确定的是,在富互联网开发方面,现在已经是三足鼎立了。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzywjg.html