程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JavaFx體驗

JavaFx體驗

編輯:關於JAVA

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 "{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,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved