與JavaFX第一次親密接觸
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太相似了:
說了這麼多,看看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
}
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;
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"
};
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
};
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 與Flutter第一次親密接觸-Android 視角FlutterAndroid
- 與RC加密演算法的第一次親密接觸加密演算法
- 與親生的Redis Cluster,來一次親密接觸Redis
- 課時1:我和python的第一次親密接觸Python
- 介面自動化測試系列之PHPUnit-第一次親密接觸PHP
- 親密接觸VC6.0編譯器 (轉)編譯
- 與Android熱更新方案Amigo的親密接觸AndroidGo
- 嘀咕親密接觸麥當勞LBS應用漸趨高潮
- Python學習第一章:第一次的親密接觸之初識程式(二)Python
- [原創] 我的專案管理之路--7、親密接觸六希格碼(四)專案管理
- [原創] 我的專案管理之路--7、親密接觸六希格碼(二)專案管理
- [原創] 我的專案管理之路--7、親密接觸六希格碼(三)專案管理
- [原創] 我的專案管理之路--7、親密接觸六希格碼(五)專案管理
- JavaFX教程-更新觸發器Java觸發器
- 紅袖添香,絕代妖嬈,Ruby語言基礎入門教程之Ruby3基礎語法,第一次親密接觸EP01
- JavaFX教程-類與物件Java物件
- Kotlin第一次接觸Kotlin
- 接觸GitHub的第一次Github
- 第一次c語言課的感觸C語言
- JAVAFXJava
- javafx 和swing_整合JavaFX和SwingJava
- JavaFX教程-反射Java反射
- JavaFX教程-操作Java
- JAVAFX嘗試Java
- JavaFx 錯誤Java
- TODO: JavaFX appJavaAPP
- JavaFX: JDK11開始又要匯入JavaFx包JavaJDK
- 第一次做專案經理的感觸和啟發
- 第一次接觸管理專案都要注意哪些問題?
- 第一次接觸jboss,執行例子出錯,鬱悶,求教
- Java FX 簡介 與 IDEA JavaFX 開發入門JavaIdea
- JavaFx WebView使用研究JavaWebView
- JavaFX 2.2.4新特性Java
- javafx-2-gametutorialJavaGAM
- JavaFX教程-表示式Java
- 整合JavaFX和SwingJava
- JavaFX 2.2版釋出Java
- JavaFX教程-修改陣列Java陣列