更新时间:2023-10-02 21:50
Sun公司已于2008年12月05日发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语言开发互联网应用程序(RIA)。该产品于2007年5月在JavaOne大会上首次对外公布。JavaFX技术主要应用于创建Rich Internet Applications(RIAs)。当前的JavaFX包括JavaFX脚本和JavaFX Mobile(一种运行于移动设备的操作系统),今后JavaFX将包括更多的产品。JavaFX Script编程语言(以下称为JavaFX)是一种declarative, statically typed(声明性的、静态类型)脚本语言。
JavaFX技术有着良好的前景,包括可以直接调用Java API的能力。因为 JavaFX Script是静态类型,它同样具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元,这些特性使得使用JavaFX技术创建和管理大型程序变为可能。
在JavaFX中,类的成员函数和操作本身被模式化作为在目标类中的类,而形参和返回值被表示为属性。代表目标对象的属性名是“this”。代表返回值的属性名为“return”。代表形参的属性具有和形参相同的属性名。而目标对象则指使用成员函数和操作的对象。从上例中可以发现,你也可以从Class对象中获取相同的、被反射的操作。被反射的操作能够像函数那样通过将目标对象作为第一个参数、其它参数作为后面的参数的方式被调用:
2008年12月05日 Sun微系统公司正式发布了基于Java语言的平台JavaFX 1.0,这个平台建立在其广泛应用的Java编程语言的基础上,旨在建立大量可在电脑和手机上运行的网络程序。Java一直以来就是编程语言,但是随着JavaFX的发布,Sun公司开始允许将编程内容创新这一任务转移到以设计艺术为重点而非编程科学为重点的设计人员身上。
“我们的目标群体是叫做创造者的人群”,Sun公司Java平台组的高级副主任 OctavianTanase对 说,“随着1.0版的发布,我们将目标锁定在网页开发人员,这群可能拓展Java界面体验的人。到2011年,主要的目标是大量使用诸如Adobe系统等设计工具的设计人员”。
当然,通向这个以设计为导向的工具还需要一些时间。Sun公司最后打算提供自己的程序给设计人员来建立RIAS,但是直到如今,这些设计人员还得使用程序员所使用的Netbeans或Eclipse集成开发环境(IDE)。新工具将在来年夏天面市。
JavaFX 2.0版本之前,开发者需使用一种名为JavaFX Script的静态的、声明式的编程语言来开发JavaFX应用程序。因为JavaFX Script将会被编译为Java bytecode,程序员可以使用Java代码代替。
JavaFX 2.0之后的版本摒弃了JavaFX Script语言,而作为一个Java API来使用。因此使用JavaFX平台实现的应用程序将直接通过标准Java代码来实现。
在桌面系统上,最新版本的JavaFX支持Windows XP,Windows Vista,Windows 7,Mac OS X和Linux操作系统。JavaFX 2.X版本暂时不支持Solaris操作系统和智能手机操作系统。但是Oracle计划将JavaFX集成到Java SE embedded 8之中,JavaFX for ARM处理器也正处于开发者预览阶段。
Sun近日发布了其RIA技术JavaFX的RAD(快速应用开发)工具的体验版,这是一个针对开发人员的JavaFX开发工具。该工具已可以在NetBeans 6.8更新中心下载。由于是早期版本,该工具还有一些功能限制,比如:对于JavaFX 1.2中新增的关键组件,如图表(Chart),尚无可视化支持;还不能对组件的某些属性进行可视化编辑;此外,预览视图偶尔会“罢工”以至于必须重启IDE才能恢复正常等。 Sun的开发工具工程部门的负责人David Folk在一个大会上说:“我们甚至不称之为试用版(beta)——而称之为‘早期体验版’,或者‘预览版’”,该工具的真正目的是让你能用JavaFX开发基于表单的应用程序”
这款新的JavaFX工具的基本思想类似于针对Swing的Matisse项目,它提供了与VB或Delphi非常相像的可视化编辑器,简化了 Swing的开发工作。与Matisse一样(它后来变成了NetBeans 5的GUI编辑器),JavaFX工作台在你工作时为你生成代码,而且,尽管你可以查看生成的代码,但不爽的是你不能对其生产的代码进行修改。
当你从调色板(palette)中拖拽一个JavaFX组件到设计区时,你可以为它们绑定数据源。该插件支持JDBC数据源、HTTP (XML / JSON)、文件系统(FileSystem)、文件数据源以及内建过滤器。它还提供一些简单的转换器,通过他们你可以方便地将某数据源(比如REST或 JSON数据源)绑定到一组组件上。
除了支持简单地拖放组件的功能外,该插件还有一个“状态”的概念。状态从最初的主状态(master state)开始,你还可以给这些组件或他们的布局增加新状态。应用运行时,比如鼠标点击的事件就可以引发状态转换,进而把你定义的行为自动反映在UI 上。每个转换行上还能附带一个简单的动画,这样,你就能快速创建缩放,渐变和旋转等特效。
该工具还有很多其他有价值的特性,如概览(通过它你可以在不同的屏幕尺度上预览应用,如同在不同的设备上一样,如桌面,移动设备和HDTV等) 以及预定义模板。利用模块你可以快速构建普通的GUI模式,比如向导按钮(取消、后退、下一步和结束等)以及索引按钮(前一步,下一步)。你可以便捷地添加这些按钮并进行客户化。
与众多必需的工具一样,JavaFX需要通过一些瞩目的应用才能获得更多的订单。早期尝试它的公司有Ubivent,它的整个虚拟事件平台是完全基于JavaFX构建的。另外还有WhitStone Technology,他们在其整体服务平台和IT服务管理产品的工作流组件中使用了JavaFX。然而,对于JavaFX来说最重要的单子也许就是 2010冬季奥运会,它的组织委员会是Sun的大客户,它在其网站上使用了基于JavaFX的金牌展示应用。
JavaFX的开发者很赞同让用户发布自己的应用,并坚信开源和社区的力量。但当前的JavaFX版本是在评估授权下发布的,因此并不能够被重新发布。你当然能够发布自己编写的基于JavaFX的应用,但不能够和JavaFX一起捆绑发布,并需要告之使用者:需要到openjfx项目站点下载JavaFX二进制代码库。并且,由于正处于早期的JavaFX代码还处在评估授权下,因此它不能用于商业用途。当Sun完成了JavaFX的商业化版本开发后,我相信这将会得到改变。