JAVAFX尝试

ZDNet软件频道 时间:2008-08-02 作者: |  我要评论()
本文关键词:尝试 JavaFX 软件
RIA 一个谁都想吃一口的肥肉,越来越多的语言开始加入开发RIA的行列中,前一段时间JAVA也推出了自己的RIA开发语言JAVAFX。

RIA 一个谁都想吃一口的肥肉,越来越多的语言开始加入开发RIA的行列中,前一段时间JAVA也推出了自己的RIA开发语言JavaFX。今天在将NETBEANS上更新了JavaFX包,试用了一下,其语言有些搞怪。制作简单的窗体到还是简单,但是感觉生成的东西就好象是VB作出来的东西。至少现在还不觉得是FLEX的对手。更不是FLASH的对手,最近发现网上在热炒微软的WPF号称是FLASH杀手。很多网评都很偏激。又想到最近发生在身边的许多事情。真不知道那些写网评的人用没有用过FLASH,FLEX,WPF,就乱泱泱,不免有替微软打广告的嫌疑,希望那些没有用过以上东东的网评者,能在写东西前先声明一下,自己是行业中人,是否否真的有切身体会,免的弄的人心痒痒的,到头来全文读下来一点收获都没有,浪费他人时间。
 
以下提供一些JavaFX的资料,了解对手才能了解自己。
 
NetBeans IDE中使用JAVAF1.下载:

NetBeans IDE 5.5;
J2SE JDK 5.0 ;
2.配置:

从IDE的工具栏选择更新中心
选择NetBeans Beta 更新中心,点击下一步
添加JavaFXEditor,JavaFX UserLibrary,JavaFXLibrary三个要更新的选项,单击下一步
更新完成,从工具栏中选择模块管理器,如果发现JavaFXEditor和JavaFX UserLibrary成功
3.运行个小程序

从文件->新建项目->常规,在右边的项目中选择Java应用程序,点击下一步
设置适当的项目名称,位置,文件夹,将“创建主类”勾掉,点击完成
选择项目右击->新建—>JavaFX file...
编写代码:
import JavaFX.ui.*;
class HelloWorldModel {
attribute saying: String;
}
var model = HelloWorldModel {
saying: "Hello World"
};

var win = Frame. {
title: bind " JavaFX"
width: 200
content: TextField {
value: bind model.saying
}
visible: true
};

选择项目右击->运行项目,这样我们就完成了第一个JavaFX Script项目
 
体验了一把JavaFX(引用地址:JavaOne放出来的新东西,出来也有段时间了,看了论坛和blog上的讨论,叫好、不看好的各占一半。今天就去下载了netbean插件,按照getting startted做了一些例子。总体来说,JavaFX仍然是在awt/swing的基础上的包装,只不过用一层薄薄的性感语法包装了一把,而且这语法与javascript等脚本语言基本一致,特别是声明性的编程语法与json非常相似。据sun声称要退出一个消费者版本的jre,大概5M-9M大小,消息参见《桌面java的缺陷:面向消费者的jre》,这个恐怕也是给JavaFX专门定制的吧。个人观点:没有什么令人激动的新鲜玩意,特别是布局方面仍然是麻烦的layout机制,对多媒体的支持还是比不上flash,优点在于与java服务端通信方面(因为都是java平台)可能比较有优势,另外就是消费者版本jre的推出是个好消息,jre实在太大了。

    说了这么多,看看Hello World怎么写的,实在与json太相似了:

import JavaFX.ui.*;
Frame {
     title: "Hello World JavaFX"
     width: 200
     height: 200
     content: Label {
      text: "Hello World"
     }
     visible: true
}

    这是声明方式来创建一个Frame,Frame里面放个Label,Label上一句Hello World。也可以采用编程方式:

       var win = new Frame();
        win.title = "Hello World JavaFX";
        win.width = 200;
        var label = new Label();
        label.text = "Hello World";
        win.content = label;
        win.visible = true;


这语法与javascript有什么不同呢?
    再来看看事件处理,仍然遵循MVC模式,比如我们希望输入框的文字修改能同时修改窗体的title,首先定义一个Model:

       class HelloWorldModel {
            attribute saying: String;
        }

        var model = HelloWorldModel {
            saying: "Hello World"
        };

    把Model绑定到View上:
  
        var win = Frame {
            title: bind " JavaFX"
            width: 200
            content: TextField {
                value: bind model.saying
            }
            visible: true
        };

TextFiled的value与model的saying操作进行了绑定,而Frame的title也绑定了model的saying方法,因此输入框的文字改变的话,也会反映到title上咯。" JavaFX"倒是类似ruby对字符串的处理方法了。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134