JavaFX简介与使用入门
RIA普遍被认是未来互联网应用发展趋势的热门技术,比如Air、Flex、Silverlight、Google GWT甚至HTML5等。JavaFX诞生之初,adobe借助flash普及,谷歌、微软借助系统和浏览器,优势都很明显,相比之下JavaFX形势不乐观也受到较少的关注。2007年Sun发布JavaFX1.0的时候以JavaScript作为语言,具有一定的学习成本,使用起来也并不方便。后来Oracle发布JavaFX 2.0,增加了很多新特性,并明智地抛弃js选择Java作为开发语言。这样一来,广大开发者可以毫无困难地使用JavaFX,并吸收Java大量的现有框架。JavaFX 2.0使用起来有点像简洁版的Swing,但其强大的地方在于可以使用FXML定义应用的布局实现逻辑与界面分离,有点类似Android的布局系统,这也是经典的MVC理念,官方还提供完善的布局设计工具,体验要优于任何Swing插件。此外,JavaFX 2.0还可以开发3D应用、媒体应用等,支持GPU渲染,更厉害的是像页面一样支持CSS,可以轻松实现自定义的界面风格。到目前为止,JavaFX支持windows、mac、linux平台,ARM版的也在准备中,事实上已经可以通过RoboVM在IOS上运行JavaFX了,有迹象表明官方也将对移动平台提供支持。由此可见选择JavaFX的有着众多优点,虽然HTML5在崛起,而JavaFX也有依赖较新版本JRE的软肋,但凭借Oracle的推广和近乎无限的Java资源,JavaFX必将在未来RIA第一阵营中占有一席之地。
使用JavaFX需要JDK1.7,也可以单独下载JavaFX的SDK,详情参考官方主页。IDE支持Netbeans、Eclipse、IntelliJ等,用我们常用的Eclipse开发需要安装插件,这里推荐e(fx)clipse,该插件在线安装地址为:http://downloads.efxclipse.org/p2-repos/releases/latest/。
安装好插件以后,通过Eclipse菜单-File-New-Other,选择新建JavaFX项目,如图:

?
?
工程创建好以后右击-New-Other,选择添加JavaFX主类:

这里引用官方的例子,键入如下代码完成:
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
?
public class JavaFxTestMain extends Application
{
? ? public static void main(String[] args)
? ? {
? ? ? ? launch(args);
? ? }
? ??
? ? @Override
? ? public void start(Stage primaryStage)
? ? {
? ? ? ? primaryStage.setTitle("Hello World!");
? ? ? ? Button btn = new Button();
? ? ? ? btn.setText("Say 'Hello World'");
? ? ? ? btn.setOnAction(new EventHandler<ActionEvent>()
? ? ? ? {
? ? ? ? ? ??
? ? ? ? ? ? @Override
? ? ? ? ? ? public void handle(ActionEvent event)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? System.out.println("Hello World!");
? ? ? ? ? ? }
? ? ? ? });
? ? ? ??
? ? ? ? StackPane root = new StackPane();
? ? ? ? root.getChildren().add(btn);
? ? ? ? primaryStage.setScene(new Scene(root, 300, 250));
? ? ? ? primaryStage.show();
? ? }
}
?
右击工程,run as javaApplication,效果如下:

?
代码中需要说明的是,JavaFX的应用程序入口类必须继承Application,main方法里必须是launch(args),
而void start(Stage primaryStage)即为JavaFX的入口,通常在这里设置窗口、布局等。关于State、Scene、Panel、Node之间的层次关系可以参考下面这张来自官方的图片,其具体的关系与用法,后面的文章再逐步介绍。

?
关于应用部署,JavaFX支持多个平台,主要发布方式有jar、jnlp、html,甚至可以打包成exe,dmg。jnlp优点是发布文件较小,可以自动下载最新版本,检测运行环境等。要部署JavaFX,打开工程目录下的build.xml进行相关设置,点击build按钮进行部署,如图:

?
完成之后会在工程的deploy目录下生成执行文件:

?
?
参考资料:
http://docs.oracle.com/javafx/2/get_started/hello_world.htm
http://blog.csdn.net/wingfourever/article/details/7819986