庄周梦蝶

生活、程序、未来
   :: 首页 ::  ::  :: 聚合  :: 管理

体验了一把JavaFx

Posted on 2007-05-18 11:05 dennis 阅读(22441) 评论(14)  编辑  收藏 所属分类: java
    JavaOne放出来的新东西,出来也有段时间了,看了论坛和blog上的讨论,叫好、不看好的各占一半。今天就去https://openjfx.dev.java.net/ 下载了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 
"{model.saying} JavaFX"
            width: 
200
            content: TextField {
                value: bind model.saying
            }
            visible: 
true
        };

TextFiled的value与model的saying操作进行了绑定,而Frame的title也绑定了model的saying方法,因此输入框的文字改变的话,也会反映到title上咯。"{model.saying} JavaFX"倒是类似ruby对字符串的处理方法了。这些例子代码完全来自 Getting Started With JavaFx script language,更多精彩内容请自己解读。题外话:netbean蛮好用的啊,在我的1G内存机器上跑的挺欢。


评论

# re: 体验了一把JavaFx  回复  更多评论   

2007-05-18 13:18 by 坏男孩
我的机器只有768M

# re: 体验了一把JavaFx[未登录]  回复  更多评论   

2007-05-18 13:54 by Leo
无论是Swing还是javaFX,都需要更好的IDE支持

JavaFX是一种脚本语言,用JavaFX写出来的复杂的UI,会不会很难管理和维护

# re: 体验了一把JavaFx[未登录]  回复  更多评论   

2007-05-18 13:57 by Leo
http://www.sun-lei.cn/2007/05/17/try-javafx-using-netbeans60m9/

# re: 体验了一把JavaFx  回复  更多评论   

2007-05-18 14:27 by dennis
@Leo
JavaFx采用这样的声明性的类似于xml、json的描述语言,就是为了更好的支持IDE,可视化开发肯定是被充分考虑了。

# re: 体验了一把JavaFx  回复  更多评论   

2007-05-18 14:28 by dennis
@Leo
我用的是netbean5.5,jdk5,感觉还是很顺畅的,netbean6正式版似乎还没release吧

# re: 体验了一把JavaFx  回复  更多评论   

2007-05-18 15:58 by 阿南
消费者版本jre的推出是个好消息,jre实在太大了。
好,找个是最好的~这样RCP打成的包就能更小了~

# re: 体验了一把JavaFx  回复  更多评论   

2007-05-19 11:38 by 山风小子
粗略看了下,Groovy的SwingBuilder就可完成JavaFX所作的事 :)

# re: 体验了一把JavaFx  回复  更多评论   

2007-08-04 09:38 by Matthew Chen
netbeans挺好的,可惜测试版bug多多,拿来开发有点怕怕,我也在netbeans上用javafx了,m10里面又bug(新出的可视化预览的bug),改用m9,感觉还行,支持binding和tragger,不过语法似乎还在变动,用早期的代码还报错了,可以去看它的源代码,确实是语法suger,而且运行起来很慢,因为是纯粹的解释然后构件类和对象运行,发布里是源代码形式的,不会是动态语言吧。

# re: 体验了一把JavaFx  回复  更多评论   

2008-08-04 17:03 by Bin
我怎么感觉像是在盗版ext...

# re: 体验了一把JavaFx  回复  更多评论   

2008-08-15 10:35 by hello
ext还是盗版java swing呢

# re: 体验了一把JavaFx  回复  更多评论   

2009-01-21 21:36 by kacakong
国内第一个JavaFX专业论坛 http://www.thejavafx.com

# re: 体验了一把JavaFx[未登录]  回复  更多评论   

2009-01-26 05:38 by duduli
早前就听过Javafx了,只是最近才开始接触。
很简单的入门。好

# re: 体验了一把JavaFx  回复  更多评论   

2009-07-20 07:43 by 开始
JavaFx的发展正步入正常轨道,Java Store将是JavaFx的新起点。

# re: 体验了一把JavaFx  回复  更多评论   

2009-07-21 11:48 by idea
越来越喜欢JavaFx,Java程序员也终于有了RIA利器了。

只有注册用户登录后才能发表评论。


网站导航: