JAVAFX嘗試
RIA 一個誰都想吃一口的肥肉,越來越多的語言開始加入開發RIA的行列中,前一段時間JAVA也推出了自己的RIA開發語言JAVAFX。今天在將NETBEANS上更新了JAVAFX包,試用了一下,其語言有些搞怪。製作簡單的窗體到還是簡單,但是感覺生成的東西就好象是VB作出來的東西。至少現在還不覺得是FLEX的對手。更不是FLASH的對手,最近發現網上在熱炒微軟的WPF號稱是FLASH殺手。很多網評都很偏激。又想到最近發生在身邊的許多事情。真不知道那些寫網評的人用沒有用過FLASH,FLEX,WPF,就亂泱泱,不免有替微軟打廣告的嫌疑,希望那些沒有用過以上東東的網評者,能在寫東西前先宣告一下,自己是行業中人,是否否真的有切身體會,免的弄的人心癢癢的,到頭來全文讀下來一點收穫都沒有,浪費他人時間。
以下提供一些JAVAFX的資料,瞭解對手才能瞭解自己。
NetBeans IDE中使用JAVAF(引用地址:http://netbeans.csdn.net/page/8d800251-4e24-4272-b41f-ceef68dc53f5)
1.下載:
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 "{model.saying} JavaFX"
width: 200
content: TextField {
value: bind model.saying
}
visible: true
};
選擇專案右擊->執行專案,這樣我們就完成了第一個JavaFX Script專案
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 "{model.saying} JavaFX"
width: 200
content: TextField {
value: bind model.saying
}
visible: true
};
選擇專案右擊->執行專案,這樣我們就完成了第一個JavaFX Script專案
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太相似了:
這是宣告方式來建立一個Frame,Frame裡面放個Label,Label上一句Hello World。也可以採用程式設計方式:
這語法與javascript有什麼不同呢?
再來看看事件處理,仍然遵循MVC模式,比如我們希望輸入框的文字修改能同時修改窗體的title,首先定義一個Model:
把Model繫結到View上:
TextFiled的value與model的saying操作進行了繫結,而Frame的title也繫結了model的saying方法,因此輸入框的文字改變的話,也會反映到title上咯。"{model.saying} JavaFX"倒是類似ruby對字串的處理方法了。
說了這麼多,看看Hello World怎麼寫的,實在與json太相似了:
import javafx.ui.*;
Frame {
title: "Hello World JavaFX"
width: 200
height: 200
content: Label {
text: "Hello World"
}
visible: true
}
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;
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"
};
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
};
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對字串的處理方法了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-209686/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 嘗試
- 嘗試1
- 初嘗試swiftSwift
- ios NFC嘗試iOS
- 嘗試 LeetcodeLeetCode
- 嘗試手寫promisePromise
- 初次嘗試HTTPSHTTP
- Redis crackit 漏洞嘗試Redis
- 嘗試 Leetcode(二)LeetCode
- 微信小程式 TypeScript 嘗試微信小程式TypeScript
- oracle函式初次嘗試Oracle函式
- mview on prebuilt table用法嘗試ViewUI
- 基於 Redis 的 LBS 嘗試Redis
- MyBatis Generator嘗試與踩坑MyBatis
- React最佳實踐嘗試(三)React
- React最佳實踐嘗試(二)React
- ChatGPT技術國產化嘗試ChatGPT
- 服務管理框架的嘗試框架
- struts國際化程式嘗試
- linux模擬windows嘗試LinuxWindows
- JAVAFXJava
- 嘗試用python開發一款圖片壓縮工具1:嘗試 pillow庫Python
- life is short 中譯本(嘗試中)
- 嘗試說一說事件的使用事件
- 嘗試使用 pack 與 unpack 函式函式
- 嘗試使用 docker 部署 Laravel 專案DockerLaravel
- nodejs“並行”處理嘗試NodeJS並行
- 嘗試 H2o 做機器學習機器學習
- Twitter擴大電商業務:嘗試售票
- 嘗試讓查詢更簡單
- 智慧家居系統的開源嘗試
- 前端的gitlab的ci初嘗試前端Gitlab
- AR+LBS線下社交遊戲嘗試遊戲
- 嘗試手寫一個註解框架框架
- 清理日誌檔案嘗試有效哦
- SSD 下的 MySQL IO 優化嘗試MySql優化
- ajax實現列表連動的嘗試
- 捕獲不到異常嘗試除以0