JavaFx初探
因为项目的需要,实在是没有办法了,试了很多种方案(RCP,SWT,Flex,Smartinvoke...),最终还是决定开始研究JavaFx。。。为了给用户更好地体验我们的“智能家居”!
以下是最近搜索得到的一些资料:
1.Oracle 上 JavaFx的下载页面:http://www.oracle.com/technetwork/java/javafx/overview/index.html
目前最新版本的SDK是2.1 JavaFX 2.1 Developer Preview - Available for Windows, Mac OS X, and Linux.
我的电脑下载的是2.0.3版本,下载之后解压到一个目录即可,建议解压到和jdk同一个目录,这样便于管理嘛
另外,告诉大家一个好消息!Oracle已经提供了一个新的开发工具 JavaFX Scene Builder Developer Preview- Now available for Windows and Mac OS X.
它可以完成将开发人员或者设计者设计的界面转换成FXML文件!Amazing!感谢Oracle!同时期望Oracle坚持自己制定的十年Java路线,让Java走得更远!
2.JavaFx开源项目和插件
http://www.oschina.net/search?q=javafx&scope=project
备注:
(1)JavaFX Eclipse Plugin 已经不可以使用了,更新站点没有内容了,所以插件安装不了滴
(2)Exadel JavaFX plug-in for Eclipse 好像已经过时了。。。我在Eclipse中安装了之后,配置JavaFx SDK时却总是不能配置成功
(3)JPedalFX - JavaFX PDF viewer (http://www.jpedal.org/jpedalfx.php) 这个是用JavaFx做的,还不错,只是打开某些PDF文件不行
(4)WidgetFX http://widgetfx.org/portal/home 这个还不错!期望能够在项目中使用!
(5)jfxtras http://code.google.com/p/jfxtras/ JFXtras 是一个 JavaFX 脚本语言的扩展工具包,包含对话框、布局容器、单元测试工具以及异步的处理等。
(6)JavaFX Designer for NetBeans Netbeans的插件,我下载的Netbeans中支持JavaFx2.0,但是官网上好像说过,现在还不支持JavaFx2.0的可视化开发,只支持1.x
3.如果是打算在Netbeans中开发javafx,参考网址: http://netbeans.org/features/javafx/index_zh_CN.html
可以看出Netbeans对JavaFx提供了很多的支持,算是一个不错的开发JavaFx的IDE
配置好了之后你可以查看一些Javafx的Demo Project,里面有很多,例如几个小游戏,还有一些特效演示,呵呵,有些还是很不错的!
注意:建议下载推荐的包含JavaFx支持的Netbeans以及包含了Javafx的JDK1.7,然后配置JavaFxSDK(新建一个平台,一定要配置JavaFx SDK,否则没法新建项目)
4.最喜欢的还是 e(fx)clipse,它是 Eclipse 下开发 JavaFx 的插件,但是可以下载完整的包含了该插件的Eclipse,并且是最新的Eclipse 4.2!哈哈哈
官方网址:http://www.efxclipse.org/ 建议去官网看看它的详细说明,太强大太神奇了!竟然可以和很多其他的技术例如OSGi,RCP等等整合到一起!Amazing!
直接下载 http://www.efxclipse.org/install.html Eclipse 4.2
完了之后再preference->JavaFx中配置SDK位置,就是刚才解压的那个文件夹!
然后开始吧,看看这里:http://docs.oracle.com/javafx/2.0/get_started/jfxpub-get_started.htm Getting Started with JavaFX
新建一个项目,然后复制演示代码到项目中,运行之,怎么样?很炫吧!
5.其他资料:
重要网址:
①官网文档: http://docs.oracle.com/javafx/index.html 这里讲解了很多的JavaFx功能,每篇文章都有相应的代码下载,另外文章可以作为pdf文件下载下来,呵呵
重要的几篇文章:
(1)JavaFX Interoperability with SWT
(2)Skinning JavaFX Applications with CSS
(3)Getting Started with FXML
(4)Concurrency in JavaFX
(5)Using JavaFX UI Controls
其实很多都是很重要的!慢慢来,慢慢看吧!哈哈哈,终于看到JavaFx的希望了!也看到了我的希望!嘻嘻嘻
还有一个另外一个独立的官方网址:http://www.javafx.com/
②博客:http://blog.csdn.net/yuanyuan110_l/article/category/918866/2 感谢这位博主,他翻译了大量的和JavaFx控件相关的内容,这些内容大部分正是上面的文档
Using JavaFX UI Controls 中的内容,呵呵,英语不好的人也可以学的轻松啦!
③itpub: http://tech.it168.com/zt/javafx/index.html 上面有一些Javafx的介绍
JavaFX应用博客 :http://www.javafxblogs.com/ 里面有不少的教程可以看,嘻嘻嘻
④两个文档,来源于Open 文档,有money的就下吧
http://www.open-open.com/doc/view/5bc4bffbc309462fad3144da89a81fa0
http://www.open-open.com/doc/view/2ecd68a116214646a0e13532a51331f9
6.下面引用一篇博客中对JavaFx2.0的介绍,我觉得写得蛮好的
“现在做Web应用开发,提得最多的概念就是RIA,即所谓的富互联网应用程序。 在RIA开发的技术选择中,基本上是两大派别:一个是不依赖插件的开放标准派,依靠Ajax和最近非常火热的HTML5,其思想是把浏览器作为唯一的运行 平台;另外一个派别则是插件派,依靠的是浏览器上的插件来支撑RIA应用的运行。插件派里面比较重要的参与者是Adobe的Flex、微软的 Silverlight和Oracle的JavaFX。两种派别的做法各有利弊:在HTML5没有被广泛支持之前,浏览器本身的能力始终有限;而依赖插件 的做法无疑会带来部署相关的问题,普通用户可能会被插件的安装过程折磨得放弃使用这个应用了。从部署的角度来说,Adobe和微软的处境要好得 多:Flash现在基本上是浏览器的标准插件,很少有浏览器不装的,除了iPhone和iPad上之外。微软有操作系统平台和浏览器的优势。而Oracle的JavaFX则比较尴尬,受限于JRE的部署状况。
JavaFX从它2007年发布以来,表现一直差强人意。Oracle收购了Sun之后,在JavaFX中投入了大量的精力进行推广和更新。JavaFX最近比较出名的应用应该是在2010年温哥华冬奥会上。在调整了JavaFX中的很多概念,以及重新设计和实现了很多重要组件之后,得到的就是现在的JavaFX 2.0。JavaFX 2.0的beta版已经发布,正式版则定于今年第3季度发布。在最早的时候,笔者也研究过JavaFX。不过在当时来说,JavaFX可用的地方并不多。JavaFX 2.0的新特性使得开发人员应该需要重新审视它在RIA开发领域中的位置。在很多情况下,JavaFX 2.0也会是不错的选择。
JavaFX 2.0的一个最重要的改进是放弃了JavaFX Script。JavaFX Script本来的目的是为开发人员提供一种简洁的脚本语言,用于创建RIA应用。但是,JavaFX Script并没有达到它的预期目的。其原因在于JVM之上已经有很多不错的脚本语言可供使用,JavaFX Script本身的吸引力不大。开发人员也不愿意学习新的脚本语言。放弃JavaFX Script之后,JavaFX的功能全部通过Java语言来访问。这是一种很明智的做法,可以利用广大的 Java开发者群体和社区优势,也有利于复用已有的资产。
JavaFX 2.0实现了自己的一套图形用户界面库,不同于Java平台上已有的AWT和Swing。从适用性上来说,AWT和Swing比较适合传统的以内容为主的 交互性较弱的桌面应用。这点从AWT和Swing中包含的组件就可以看得出来,只是一些常见的内容驱动组件,甚至没有图表的支持,只能依靠JFreeChart这 样的第三方库。如果需要创建内容丰富的界面,则需要利用Java 2D和Java 3D API来自行绘制。对多媒体的支持也不够有限。JavaFX 2.0新的图形用户界面库把基本图形元素和用户界面组件两类元素统一在一起。不管是矩形、椭圆、按钮还是表格,都是用户界面上的节点,可以用相似的方式来 处理。JavaFX 2.0在JVM之上,实现了新的类似AWT的窗口工具箱Glass Windowing Toolkit,可以直接利用操作系统的原生事件队列。从此再也不需要小心注意AWT和Swing中事件分发线程的使用问题了。 JavaFX 2.0中的图形渲染引擎Prism可以借助底层操作系统上的DirectX和OpenGL提供的硬件加速支持,因此性能优于传统的使用Java 2D进行软件渲染的做法。在用户界面组件方面,除了基本的常用组件之外,还提供了图表绘制的支持。在多媒体支持方面,除了基本的图片之外,JavaFX 2.0的媒体引擎支持MP3、AIFF和WAV等音频格式和FLV视频格式。
在组件的外观方面,JavaFX 2.0也采用了更加流行的做法,即用CSS来定义应用的外观。另外,JavaFX 2.0也引入了界面描述语言FXML。FXML在功能上类似微软的XAML,是一种用户界面描述语言。FXML+CSS+Java这样的组合,颇有些Web应用开发中HTML+CSS+JavaScript组合的味道。
值 得重点介绍的是JavaFX 2.0中的Web引擎组件。这是一个基于Webkit内核的内嵌浏览器。在JavaFX应用中可以访问内嵌浏览器中网页的DOM结构和执行 JavaScript代码。基于Webkit意味着这个内嵌浏览器支持HTML5的新特性。这个内嵌浏览器可以在很多场景下都得到应用,比如Web应用的 自动化测试。另外一种用法是把内嵌浏览器作为Web应用运行时刻的环境,以一种Java+HTML的方式来呈现。
JavaFX 2.0至少把Java平台变成了一个开发富客户端应用(RCP)的良好平台。在以后的开发中,AWT和Swing应该会逐渐淡出桌面应用开发的视野。 JavaFX将成为Java平台上主流的图形用户界面开发库。而在RIA方面,JavaFX的前景仍无法预料。毕竟,依赖插件的RIA开发方式都受到来自 HTML5的巨大冲击,JavaFX自然也不例外。JavaFX能发挥作用的一个地方应该是在企业内部系统中。对于企业内部的系统,部署上的问题比较好解 决,同时也有利于复用内部的Java相关的资产。”