百度空间 | 百度首页 
 
文章列表
 
2009-08-29 14:36

近日看到一个例子,很有启发,故搜藏如下:

富互联网应用RIA的开发平台语言JavaFX,它的主要技术特点在Rich和Internet上,也就是展现丰富的客户端和强互联能力。我将前段时间写的单机版JavaFX许愿树改成了online版,成为了三层架构的应用。如下图,展现层是JavaFX的富客户端,中间层是Web Server和PHP脚本,数据库层是MySQL。


在这个网络版许愿树应用中,不同的人可以通过互联网在许愿树上面挂上自己的愿望星,大家看到的都是同一棵树。请你点击下面截图来试试最新联网版的许愿树,需要输入email地址,这样可以修改愿望,每个人请最多留一个愿望。

详细可以查看:

JavaFX多用户在线应用实例:许愿树

JavaFX技巧:Java调用JavaFX例子

在JavaFX中的菜单

Swing应用中使用JavaFX的功能

用纯Java代码调用JavaFX的功能

JavaFX Multi-User Game Demo

August的JavaFX文章精选:

JavaFX Online Game Wish Tree (1)

JavaFX Online Game Wish Tree (2)

其它:

NASCAR Diecast Car and Drivers

NASCAR Driver Tony Stewart Diecast Car

NASCAR Diecast Car Jimmie Johnson
New US Citizenship Test Questions

Best Online US Citizenship Practice Test

US Citizenship Application Forms

类别:默认分类 | 评论(0) | 浏览()
 
2009-08-16 13:33

介绍一个在线学习程序叫做TTT: Tech Test Train(技术测试列车)。它是个JavaFX练习题程序,题目共分为五大类,代表不同方面的JavaFX知识要点。如果对测试成绩不满意,可以去学习相关的培训资料然后再来测试,这对个人的JavaFX水平提升是很有好处的,大家可以试试。还有就是这个程序本身也用JavaFX语言写的,通过体验这个程序的运行,你可加强对JavaFX各种功能的理解,例如视觉动画animation效果等等。

连接如下:http://www.javafx.com/learn/training.jsp

Related Links:
JavaFX实现菜单   Build Menu in JavaFX

Swing应用使用JavaFX   JavaFX Scene shown in Swing Window

JavaFX妙用:Java调用JavaFX图表的例子   Pac-Man Game Widget for WidgetFX 1.2


Others:

NASCAR Diecast Racing Driver, car, memorallia, apparels, jackets, hats, Diecast Cars,
Designer Bags and Handbags Citizenship Test & US immigration Application   Online US Citizenship Test
Canadian Citizenship Practice Test

类别:Javafx | 评论(0) | 浏览()
 
2009-07-06 20:25

JavaFX包含了许多Java SE不具备的功能,如图表Charting,动画,媒体播放,RSS/Atom流等,于是程序员常常讨论如何在Java中调用JavaFX的功能。笔者文章纯Java代码调用JavaFX的功能JavaFX和Java之间的互操作性对此作过专题讨论。在开源项目JFXtras最新版本中, 提供了一个JavaFX的封装类,可以在SWING应用中显示JavaFX的图性元素(动画,图表等)。这是个十分有用的功能,对广大的Java(Swing)开发人员来说是个好消息。我把这个程序修改了一下,以便说明问题。

在文中注明:转自 http://www.javafxblogs.com 作者:Henry Zhang,即可获得授权转载.

在文中注明:作者: Henry Zhang 转自 http://www.javafxblogs.com ,即可获得授权转载

在上面代码MyScene.fx中, 我们定义了一个Timeline实例来播放动画,在动画中,我们不断的使一行文本在窗口中旋转。每隔70毫秒,都会触发一次旋转角度的变化(每次5度)。为了演示在JavaFX和Java中交互数据,我们在每次更新时,从Java的静态变量中获取数据,具体代码如下:


本"JavaFX for SWING"在窗口中央旋转。如果你在输入框中输入新的句子,你会发现旋转的文字也发生了改变。你可以点击以下截图来启动一个Java Web Start的演示程序(JDK1.5以上),或者可以点击这里来观看演示的视频(需要有Windows Media Player)。


说明

1) 在上述程序中,我们用JavaFX的代码去轮询Java的变量值,实际中这会损失比较多的性能,所以我们可以从Java代码中主动把数据变化通知JavaFX。这需要一种从Java调用javafx的技巧,可以参见本人文章:用Java代码调用JavaFX的功能http://www.javafxblogs.com/java-call-javafx-code/).


2) 在Swing程序中调用JavaFX是可行的,那么应该怎样编译和运行这样的程序呢。其实,JavaFX的功能也就是一些jar文件,因此和Java的结合方式还是比较简单的。编译的方法主要有两种,一种就是用JavaFX 的编译器javafxc来编译Java和JavaFX的代码。第二种就是用javafxc编译JavaFX代码,用javac编译java代码。运行程序的时候,我们可以选择javafxjava命令即可,可以参见本人文章:JavaFX技巧:纯Java代码调用JavaFX的例子的详细说明。

类别:Javafx | 评论(0) | 浏览()
 
2009-06-22 11:35

在JavaFX 1.0发布之后,本人撰写的文章JavaFX和Java之间的互操作性被各网站转载。文中总结了3种从Java调用JavaFX的方法。这三种方法分别为: http://www.javafxblogs.com

1. 用ScriptEngineManager类。这是基于JSR-223规范的java脚本API( scripting API)。可以在java程序中运行一些脚本,如 JavaFX script, javascript等。
2. 通过JavaFX reflection API。这是JavaFX提供的反射API,几乎可以调用所有的JavaFX类。
3. 先用JavaFX类实现一个Java的interface,然后Java程序可以通过这个interface来调用JavaFX的功能。这中间的interface起了个桥梁的作用。

第三种方法应该是比较“正规”而且“优美”的调用方式。但是也有一点不足:程序代码的入口必须从JavaFX启动。这是因为JavaFX程序比较容易生成JavaFX类的实例,从而可以供Java方使用。可是我们有时会碰到一些特定的情况,需要从Java端启动代码。例如,如果你已经有了一个较完整的Java程序,你需要用调用JavaFX的某些功能,这时候较好的方法是把Java作为程序的入口。为了解决这个问题,我把第2和第3种方法作了融合,大家可以看看下面的例子。纯Java代码调用JavaFX的例子

www.JavaFXblogs.com

下一步是创建JavaFX类MyChart来实现这个interface:

www.JavaFXblogs.com www.JavaFXblogs.com

www.JavaFXblogs.com


在代码中,这3句是创建JavaFX类javatest.MyChart实例,

Context context = FXLocal.getContext();
    FXClassType instance = context.findClass("javatest.MyChart");
    ObjectValue obj = (ObjectValue)instance.newInstance();

而一下这句则是把JavaFX实例转化为Java可用的对象:
JavaInterface ji = (JavaInterface)obj.asObject();

如果你用的是NetBeans IDE, 你可以在项目属性中把javatest.JavaTest类设为主类(Main class)(即启动类)。编译之后会生成一个javatest.jar文件。程序运行的结果如图:

Java PieChart via JavaFX


在命令行中可以采用以下方式: http://developers.sun.com/blog/henry

   javafx -jar javatest.jar

实际上,可以用纯Java的方式来启动程序,只要把JavaFX的运行环境带上即可,如:JavaFX程序例子、教程

 java -Djava.library.path="<path to javafx sdk lib>" 
     -classpath "<all javafx sdk jars>" -jar javatest.jar
因为JavaFX需要的jar文件很多,因此这种“最纯”的java方法使用起来比较麻烦。我觉得还是用javafx命令简洁些, 而且javafx就是上述java命令的封装而已。

如果有问题,请留言讨论。

本文的英文译文同步发表于:Calling JavaFX Classes from Pure Java Code. Pure Java Code to Call JavaFX Class

中文同步发表于:用纯Java代码调用JavaFX的功能

类别:Javafx | 评论(0) | 浏览()
 
2009-06-20 17:50

JavaFX吃豆人游戏的第五篇文章上周已经发表。在最后的这篇文章中,详细介绍了精灵追逐吃豆人的算法。这可能是该游戏代码中最有趣的部分了。

在游戏编写时,通常需要考虑一些要素,如算法的效率、随机性、简洁度等。在文章中对这些问题都作了讨论。 在追逐算法中,程序采用了比较简单的距离优先的逼近算法。如下图所示: 怎样用JavaFX编写游戏:吃豆人(Pac-Man)之四

图中的红色精灵从右到左移动,当它在交叉路口时,它可以选择向上或者向左移动。如果我们把它和吃豆人之间的X/Y方向上的距离和作为一个评估指标的话,我们可以得到这样一个结论: 向左走的距离为14,向上走距离缩短为12。因此向上可以使得红精灵更加逼近吃豆人。通过计算,我们就可以知道向上是个比较好的选择。如果吃豆人吞下魔法豆,我们只需要把积分方式取负运算,就可以立刻成为一个精灵的逃离算法。网上还有许多关于算法的介绍,但作为例子,本文中仅介绍一个最简单和最易实现的算法。全文可以参考这里。点击下图可以启动完整的吃豆人JavaFX游戏:(JDK 1.5以上)


启动游戏

启动游戏

相关文章:

JavaFX应用实例、例子
用JavaFX编写的游戏Pac-Man
JavaFX实例探索教程
JavaFX特性和编程实例代码
JavaFX 1.2 程序迁移指南

快速升级到JavaFX SDK 1.2的方法
JavaFX吃豆人游戏的编写过程之二
JavaFX游戏吃豆人的编写过程


英文文章连载:

2009年5月14日 - 2009年6月11日:
Writing the Pac-Man Game in JavaFX

类别:Javafx | 评论(0) | 浏览()
 
2009-06-16 23:40

JavaOne 2009的内容可以下载了,链接是http://developers.sun.com/learning/javaoneonline/。其中JavaFX的讲座在“Rich Media Applications and Interactive Content”类别中,需要注册一个Sun Developer Network的帐号才能看到这些PDF文件。

JavaOne的演讲者之一Stephen Chin告知,我写的JavaFX Pac-Man(吃豆人)游戏在他的两个讲座中都作了现场演示,非常成功。这个游戏是Jim Weaver提出的一个挑战,他希望我把Pac-Man游戏改写成WidgetFX的widget,Stephen也答应在JavaOne上demo。虽然只有不够一周的时间,但好在WidgetFX的API比较易用,所以我仅用了2天就完成了(详见英文博客Challenge on Pac-Man Game Widget)。等WidgetFX SDK 1.2推出之后,再把代码更新后给大家分享一下。虽然不能亲临JavaOne,但是自己的游戏能登上大讲台,也是件很高兴的事。


JavaOne 吃豆人游戏演示
JavaOne 吃豆人游戏演示

这两个JavaOne演示吃豆人游戏的讲座是:

Pro JavaFX Platform: RIA Enterprise Application Development with JavaFX Technology

Getting Started with WidgetFX: Open-Source Widget Desktop Platform with JavaFX Technology


相关文章:

JavaFX吃豆人游戏编写过程详解(英文)

JavaFX吃豆子游戏编写过程(中文)

类别:Javafx | 评论(0) | 浏览()
 
2009-06-11 17:33

javafxblogs.com Rss_google Rss_zhuaxia Rss_xianguo

本文转载自:Henry Zhang的 RIA-JavaFX编程应用实例博客


JavaFX 1.2给我们带来了许多功能和性能上的提升,因此,我需要对原来的JavaFX 1.1的IDE和SDK进行升级来使用JavaFX 1.2的新特性。对于从来没有使用过JavaFX的用户来说,安装JavaFX SDK 1.2应该很简单,可以从javafx.com下载一个NetBeans 6.5.1+JavaFX 1.2 SDK混合包,那就OK了。可是对于我这种已经使用NB 6.5.1和JavaFX 1.1.1的用户,就需要考虑一些其它问题。因为我有不少程序是按照JavaFX 1.1的API写的,骤然升级可能会使得无法使用这些程序。同时由于两个SDK的IDE版本都是NetBeans 6.5.1,重新安装一遍也太浪费空间和时间,于是我查阅了一些资料并找到了快速升级的方式,同时还可以保留两个版本的SDK。 (转载注明来作者:Henry Zhang, http://www.javafxblogs.com http://javafxguy.javaeye.com )

如果需要同时支持2个版本的JavaFX SDK,可以在升级前先把旧版本备份一下,这样可以避免被新的SDK覆盖。JavaFX SDK 1.1的缺省目录在C:\Program Files\NetBeans 6.5.1\javafx2\javafx-sdk,把它拷贝到另外一个目录,如C:\jfxsdk11\ 。 JavaFX 应用实例和例子教程

接下来就是升级了。在NB6.5.1 中,选择菜单Tools-〉Plugins,这时会列出一些可更新的plugin,如果没有看到列表,可以点击“Reload Catalog”按钮。如果plugin太多,可以在Search框中输入JavaFX过滤一下。有3个Plugin和JavaFX相关:

Plugins 说 明
JavaFX Kit 改进过的NetBeans IDE, Version 1.8
JavaFX SDK for Windows JavaFX SDK 1.2, Versions 1.7
JavaFX Weather Sample JavaFX演示程序, Versions 1.7


其中前面两个plugin是必需的,演示程序可自己决定取舍。选择安装之后,需要重新启动NetBeans。重新启动后,新的JavaFX SDK1.2 就安装完成了。如果要配置JavaFX 1.1的环境,则可以在菜单Tools->Java Platforms中配置。点击“Add Platform…”按钮添加平台,下一步中再选择JavaFX平台,输入平台名称如”Java SDK 1.1″,平台文件夹中输入刚才备份的目录C:\jfxsdk11\,点击”结束”即可。系统可能会有一个不支持之类的警告,但是不用理会。

如果你的项目需要使用JavaFX 1.1,可在项目的属性(右键点击该项目,选Properties)中配置libraries(库),可以选择JavaFX平台。这样,在同一个NetBeans IDE中就可以同时使用两个JAVAFX SDK环境了。当然,如果你没有太多JavaFX 1.1的程序,或者现有的程序和JavaFX 1.2兼容,那就基本上没有必要配置两个SDK版本了。

在用JavaFX 1.2重新编译了原来的程序后,发现JavaFX1.2的性能提升了不少。原来我用JavaFX 1.1写的吃豆人游戏,要占用50%左右的CPU利用率,现在只需要10-20%,进步还是比较明显的。所以建议尽可能使用JavaFX 1.2。

最新文章:

JavaFX吃豆人游戏的编写过程之三
JavaFX 1.2的新特性
JavaFX吃豆人游戏的编写过程之二
JavaFX游戏吃豆人的编写过程
怎样用JavaFX编写游戏:吃豆人(Pac-Man)之三

JavaFX 1.2的新特性 自己编程写的JavaFX 演示游戏

JavaFX的Effect功能例子:编写许愿树程序

英文文章连载:
第一篇文章,2009年5月14日: Writing the Pac-Man Game in JavaFX - Part 1

第二篇文章,2009年5月21日: Writing the Pac-Man Game in JavaFX - Part 2

第三篇文章,2009年5月28日: Writing the Pac-Man Game in JavaFX - Part 3

第四篇文章,2009年6月4日: Writing the Pac-Man Game in JavaFX - Part 4

类别:Javafx | 评论(0) | 浏览()
 
2009-06-08 23:55

javafxblogs.com Rss_google Rss_zhuaxia Rss_xianguo

本周发表了英文连载中的第4篇文章。在这篇文章中,主要介绍了吃豆人和精灵之间互动的代码实现。本程序的代码可以在该文章中下载,或者在“JavaFX游戏实例共享网站”中下载。

到上一篇文章为止,我们已经实现了游戏中所有的人物。现在我们来增加吃豆人和精灵追逐和互“吃”的处理逻辑。如果吃豆人和精灵相遇,只有两种情况,吃豆人吃掉精灵或者反之。如果吃豆人刚刚吞吃了魔法豆,他可以吃掉精灵,否则吃豆人就会损失一条命,这时,需要播放一段吃豆人消失的动画(如下图所示):JavaFX应用实例、例子 JavaFX Guy的博客 JavaFX 1.2的新特性


shriking pac-man

这个动画在DyingPacMan类中实现,代码如下:

在这个动画中,定义了2个KeyFrames,一个在600ms,另一个在1800ms。在这两个关键帧中采用了JavaFX的线性插值方式(Interpolator.LINEAR)。线性插值的作用就是把动画中数据按照时间关系,在帧与帧之间线性变化,从而实现平滑的动画效果。在上述代码中,Arc类的两个实例变量:startAnglelength, 通过线性的均匀变化,实现了我们需要的动画过程。参考下图的时间轴。第一个关键帧的时间是600ms而不是0ms,是因为我们希望游戏在这瞬间稍微停顿600ms。
timeline pac-man

好啦,到目前为止,游戏已经基本完成了,可以玩了。唯一不足就是精灵现在还是随机移动的,游戏的难度不大。不要紧,我们将在下周的文章中详细讨论。现在就点击下图来试一下这个游戏吧:(JDK1.5以上, Java Web Start 自动启动)

点击启动

点击启动


相关文章:
JavaFX 1.2的新特性
怎样用JavaFX编写游戏:吃豆人(Pac-Man)
JavaFX吃豆人游戏的编写过程之二
JavaFX游戏吃豆人的编写过程

JavaFX应用实例、例子
用JavaFX编写的游戏Pac-Man
JavaFX Guy的博客
JavaFX 1.2的新特性
怎样用JavaFX编写游戏:吃豆人(Pac-Man)

JavaFX吃豆人游戏的编写过程之二
JavaFX游戏吃豆人的编写过程


英文文章连载:


第一篇文章,2009年5月14日:
Writing the Pac-Man Game in JavaFX - Part 1

第二篇文章,2009年5月21日:
Writing the Pac-Man Game in JavaFX - Part 2

第三篇文章,2009年5月28日:
Writing the Pac-Man Game in JavaFX - Part 3

第四篇文章,2009年6月4日:
Writing the Pac-Man Game in JavaFX - Part 4

类别:Javafx | 评论(0) | 浏览()
 
2009-06-08 23:42
本文同步发表于:
JavaFX 1.2的新特性

JavaFX 1.2的新特性

JavaFX 1.2在功能上和API上都有了较大的提高,较为不便的是,对先前写成的JavaFX 1.0/1.1的代码,虽然可以在旧的runtime中继续运行,但是如果要利用JavaFX1.2的功能等优点,可能需要做迁移和语法修正并且重新编译。JavaFX 1.2 主要的新功能如下:

0)支持OpenSolaris和Linux
1)BoxBlur等新效果(effect)
2)异步的处理模式(Asynchronous Processing Model)
3)内置的数学和属性类(即JavaFX写的Math,Properties类)
4)更多新的Layout类
5)更多的Skinnable控件    JavaFX专家博客
6)RSS和Atom的支持
7)图表功能(饼图,柱状图、散点图等)  JavaFX 技术和编程示范实例
8)Mixin类替代了多继承性
9)Java数组的直接引用(无需通过Sequence的转换)
10)Stage的支持功能,如Screen,Alerts等
11)本地数据存储,可以支持会话状态的保存。  JavaFX Guy的博客
12)客户化UI控件的增强支持(Behavior类等)
类别:Javafx | 评论(0) | 浏览()
 
     
 
 
文章分类
 
 
 
     
 
文章存档
 
 
 
 
     
 
最新文章评论
   
     


©2009 Baidu