JavaFX简介与使用入门
JavaFX是Sun于2007年推出的富互联网应用开发技术(RIA)。所谓RIA,就是页面体验和数据交互都基于web,提供跨平台,拥有丰富的体验,且易于部署的应用程序。了解更多RIA可以参照*上的内容。
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目录下生成执行文件:
参考资料: