ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 与JavaFX第一次亲密接触

与JavaFX第一次亲密接触

原创 Linux操作系统 作者:梧桐雨—168 时间:2008-03-19 08:36:45 0 删除 编辑
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太相似了:
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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。也可以采用编程方式:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->class HelloWorldModel {
attribute saying: String;
}

var model
=
HelloWorldModel {
saying:
"Hello World"

};


把Model绑定到View上:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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内存机器上跑的挺欢。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13270562/viewspace-211642/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-28

  • 博文量
    141
  • 访问量
    401861