译者:cleverpig
本文由SDN全职作者兼开发者John O'Conner编写,文中坦率地记录了他在学习JavaFX脚本语言过程中的经历。本学习曲线日记系列将致力于介绍JavaFX技术并指导初学者开始使用它。
JavaFX 脚本在2007年3月的JavaOne大会上面世,虽然这个技术非常新鲜,但Sun和技术社区一直在努力使其每周都有引人注目的进步。因此现在是学习这种 语言的好机会,你可以马上下载并使用它。这里提供一些展现JavaFX语言特性的漂亮的演示应用。
JavaFX 脚本是一种全新的脚本语言,开发者能用来创建动态图形界面。该语言提供了方便使用的Swing接口工具和Java2D API代码库。但它并不能替换Swing或者Java2D;其目标是使这些API更加易于访问。与Java语言不同的是该语言提供了过程式和声明式语法。 你能够使用声明的方式创建富用户接口,并且添加相应的事件处理和操作。
但是,为了适用于初学者,还是让我们先放慢一下速度,先介绍一下如何着手使用JavaFX脚本吧。首先,你需要完成四件事:
• 最新的JDK
• 获取精确、即时更新的信息
• JavaFXPad演示应用
• 与开发环境集成在一起的JavaFX脚本插件
搭建Java平台
作为一名开发者,你无须对JDK的平台适用性多虑。但是,如果你没有升级JDK的话,还是请升级到Java SE 5或者Java SE 6。如果你使用Solaris、Windows或者Linux,你可以从Java SE下载页面直接下载最新的JDK。如果你使用Mac OS X,那么你也能直接从Apple开发者连接的Java版块中下载最新的JDK。
获取资源
当你体验一种新环境或者语言时将会撞到“死角”或者困难之处,这正是我们在使用尖端技术时常遇到的。为了使学习曲线变得光滑一些,优良的文档和示例是绝对关键的。SDN的JavaFX技术中心、OpenJFX项目站点提供了你所需的最新文档和演示资源。当然,在这些文档中也存在着遗漏,但工作人员正在努力补充完善。推荐你马上将这两个站点添加到浏览器的收藏夹里,常常参考它们:
• SDN的JavaFX技术中心
• OpenJFX项目站点
有些人希望马上就编写程序,而不去阅读语言规范文档。而另一些人会在实际使用JavaFX脚本之前详细阅读文档。即使你是个急性子,也请首先阅读语言规范 或者入门。在你能够编写出原始的“Hello,world”示例之前,我建议你先了解一下基本的语法、下面是一些用于初学者的文档:
• JavaFX脚本编程语言手册
• JavaFX脚本语言入门
使用JavaFXPad
JavaFXPad 是一个Java Web Start应用,它提供了一个分割窗体的环境:上方是一个实时画板窗口,而在下方是一个简单的编辑器。当你在编辑器中输入脚本代码时,上方的画板窗口将展 示代码被解释后的效果。这是体验JavaFX最快、最容易的方式。画板作为用户接口直接展现了代码效果。
在阅读过JavaFX语言规范文档后,你可以执行JavaFXPad演示。如果你已经正确地安装了JDK,那么你应该能够在浏览器中正常浏览。当然,你也可以执行命令javaws来启动应用:
javaws http://download.java.net/general/openjfx/demos/javafxpad.jnlp
成功启动应用后,你应该看到如下窗口:
图1. JavaFXPad Editor
JavaFXPad编辑器提供了基本的格式化和代码补全功能。对于JavaFX脚本初学者的我们,往往不能够确保语法的正确性,但代码补全功能可以帮助我们。按下Ctrl+空格键来激活代码补全功能。
在清空初始的演示代码后,你可以编写自己的“Hello,world!” 。在空白编辑器中输入如下代码:
import javafx.ui.Label;
Label {
text: "Hello, world!"
}
你将在编辑器上方看到如下输出:
图2. "Hello, world!"
Ok,到这里我已经尝试讲解了如何建立简单应用。JavaFX环境实现了所有的Swing UI组件,因此你还可以使用其它的组件,比如按钮或者对话框。
下面便是一个介绍如何在按钮上设置事件处理的示例。在查看了JavaFX规范中关于action和operation的语法后,让我们尝试在点击按钮后显示一个消息框:
import javafx.ui.Button;
import javafx.ui.MessageDialog;
Button {
text: "Press me!"
action: operation() {
MessageDialog {
title: "You pressed me"
message: "Hey, don't do that!"
visible: true
}
}
}
在输入上述代码后点击按钮,你将看到如下变化:
图3. "Press me!" Button Message
JavaFXPad也具有打开和关闭文件的操作,因此你可以装载从前保存的程序文件。尽管JavaFXPad并不是你长期使用的开发编辑器,但它的简单和方便能够帮助初学者。当你已经熟悉这个工具后,也可以在其它编辑器乃至IDE中使用这些保存好的文件。
升级IDE
当你决定把JavaFX脚本装备到IDE中时,你至少需要找到适用于NetBeans和Eclipse的插件。这些插件提供了脚本引擎的核心代码库和它自己的代码库,能够增强编辑效果,并在项目中引入JavaFX脚本。
以下就是插件的下载链接:
• 用于NetBeans IDE 5.5的插件
• 用于NetBean IDE 6.0的插件
• 用于Eclipse 3.2.2的插件
在这里,我采取了和OpenJFX项目文档中略微不同的方式。我在NetBeans中创建了一个新的“JavaFX脚本”更新中心,而不是覆盖现存的 NetBeans升级中心Beta节点。在创建好了新的更新节点后,我所做的便和说明文档中完全一样了。
只要你正确地配置更新中心,获得插件便成易事了。选择在你配置的更新中心,然后更新向导将逐步提供给你如下需要下载的模块:
• JavaFX Editor
• JavaFX UserLibrary
• JavaFX Library
• JavaFX Projects
在更新向导找到插件后将出现下面的窗口:
图4. 更新中心的JavaFX Plugins
NetBeans完成模块下载后,更新向导将提示你安装它们。选择好模块后便可以继续安装。
图 5.选择要安装的模块
在完成插件安装后,你可以在IDE中编辑并运行脚本。这里提供两种运行脚本的方法:使用net.java.javafx.FXShell类或者内建于 Java SE 6中的脚本引擎。IDE插件将设置你的项目主类为FXShell,后者是JavaFX提供的脚本执行器。为了执行指定的脚本,你必须提供脚本的完整名称作 为FXShell的参数。在NetBeans IDE中,你可以通过配置项目属性中的运行设置(Run settings)来做到这一点。下面的图片展示了用于执行脚本的运行配置:com.sun.demo.javafx.ui.PressMe是要被执行的 脚本。com/sun/demo/javafx/ui/PressMe.fx在我的源代码目录。
图6. PressMe脚本
总结
在研究新技术时,正确的开始是非常重要的。确保你读取了正确的信息、使用了正确的工具。其最佳方式分为以下四步:
1.获得最新的JDK。
2.将OpenJFX项目站和JavaFX技术中心作为你的信息获取来源。
3.利用JavaFXPad演示应用来实现你的第一个JavaFX脚本。
4.选择安装适合IDE的插件。
相关资源
• JavaFX完全中文手册(试读版)
• Learning Curve Journals, Part 1: Exploring JavaFX Script
• JavaFX脚本语言起步教程 - 使用NetBeans IDE(5.5或者6.0预览版)或者CLI和JavaFX声明式语法创建你的第一个“HelloWorld”程序。
• 深入学习JavaFX脚本语言 - 超越“HelloWorld”程序进一步学习如何使用JavaFX脚本的GUI组件。此教程适用于Swing程序员。
• JavaFX 脚本 2D 图形教程 - 使用一个交互式的画板和源代码编辑器来学习JavaFX脚本编程。
• 检查 Java.sun.com/javafx/ 获取相关JavaFX脚本的技术文章链接。也可以关注 Mobility 来获取关于Java技术和消费设备的相关文章和信息。
• JavaFX脚本编程手册