跳到主要內容

BMI Calculator ver 1.0

JavaFX - Java 家族的新成員, 由 Sun 所主導的 RIA 技術, 核心技術是 Java, 目的是和其它公司的 RIA 技術對抗, 如: Microsoft 所推出的 SilverLight 和由 Adobe 所主導的 AIR.
既然 JavaFX 核心是 Java, 當然就兼具了跨軟硬體平臺的特性, 安全性高以及程式很小的優點. 不過和其它 Java 家族的成員不同, JavaFX 使用的是 JavaFX Script 這個全新的腳本語言, 對不曾學習過 Java 的新手來說, 可以快速上手, 對 Java 老手則只需要適應不同的語言結構, 其它概念都是相同的. 使用 JavaFX 開發 RIA 最大的優勢, 就是和 Java 平臺的互通性, 在 JavaFX 中可以很輕易的使用 Java 龐大的套件庫, 還有更多關於 JavaFX 平臺的說明, 有興趣可以自行參考官網.
如果要跑 JavaFX 的程式很簡單, 只需要下載安裝 JRE 就可以了, 如果想要開發 JavaFX 的程式. 官方建議使用 NetBeans 進行開發, 記得下載 NetBeans 選擇包含 JavaFX 的版本. 關於種種環境的安裝設定, 這邊就不多說明啦~

關於語言細節的部份, 在 JavaFX 官網的教學區有很多的資源, 如果想嘗試看看, 建議先讀這兩份, 第一份是關於怎麼撰寫 JavaFX 腳本語言, 第二份是關於如何寫出 JavaFX 的 GUI. 瞎瞇~ 你問我有沒有讀完喔!? 答案是... 當然沒有啦 XD 我自己覺得邊做邊學效果最好, 於是在我大概搞懂語法以後, 就開始著手寫個小程式. 寫什麼好?? 我挑了個簡單到沒道理的 BMI 計算進行實作, 現在掛在 Blog 右邊那隻 JavaFX 程式, 就是我第一個 JavaFX 的作品啦.


[如果系統中有安裝 JRE 就可以順利看到掛在 Blog 右邊的 BMI 計算小程式]

[軟體開發環境]
  • OS - Mac OS X 10.5
  • JDK - 1.6.0_13 (64-bit)
  • JavaFX - 1.2
  • IDE - NetBean 6.5.1
由於實際在練習撰寫 JavaFX Script 時, 發現了幾個特別的地方, 所以提出來和大家分享
  1. 產生 JavaFX 物件時不用使用 new 關鍵字
    def heightBox: TextBox = TextBox{}
    等號左側=> def 為宣告起始字 heighBox 為變數名稱 : TextBox 為指定的變數資料型態 (記得要加上冒號).
    附帶一提在 JavaFX 中宣告變數並不需要事先指定資料型態, 也就是說在這個例子裡 : TextBox 可以省略.
    等號右側=> TextBox{} 的意思就是已經產生了一個 TextBox 資料型態的物件, 大括號中沒有內容, 表示使用預設值, 類似 Java 中無參數的建構子.
    值得注意的一點是, 這句表示式的結尾沒有分號 (;), 在 JavaFX 中這種有指派 JavaFX 物件 (以大括號結尾) 的表示式, 可以不用加上分號, 但如果怕混淆還是建議都加上分號.
  2. 產生 Java 物件時, 使用和 Java 相同的語法
    def df = new DecimalFormat("0.00");
    等號左側=> 這就是一個沒有事先定義資料型態的變數.
    等號右側=> 使用 new 和 建構子 進行物件的創建, 語法和 Java 相同.
  3. Void 和 Java 使用的 void 不同 V 要大寫
  4. 定義方法要使用 function 關鍵字且回傳型態寫在大括號的左邊
    function test(no1:Number, no2:Number):Void{}
其它如運算的方法, 例外的處理, 事件的觸發, 在這隻程式中使用到的部份多和 Java 大同小異, 剩下就是 GUI 與套件的運用, 這就需要個人花點時間去研究 API, 我相信努力就會有成果 ~^___^~

完整的 NetBeans 專案檔我已經分享在 JavaWorld, 有需要參考的朋友可以去下載.

留言

匿名表示…
JavaFX 原來是RIA的一種啊,我原先還以為是專用在mac上的某一種版本哩,雖然每天工作都會用到java SE和EE,不過對於ME等其他的東西,還是都沒碰過哩,這點就很佩服你了,會主動接觸新東西呢,講解的很棒喔!!程式也寫得很不錯!!
路斯特表示…
所以還是要有Java經驗囉...0 3 0

還是從Java開始學好了TmT
阿刃寫道…
回路斯特:
就算沒有 Java 的經驗
也是可以寫 JavaFX Script!!
這是把 Java 包裝起來, 具有全新特性的語言,
沒有 Java 的繁複, 確有 Java 的優勢 :D
真的很快可以上手的 ^^
阿刃寫道…
回一樓的匿名者:
哈... JavaFX 的版圖好大, 還跨到了機上盒和藍光機上呢~
有時間當然就希望自己可以碰點新東西, 老是卡在原地也不行..
Sofi表示…
加個評價欄給使用者,感覺會更有實用價值唷!!
例如.低於10以下:別忙到忘了吃飯$#%...
標準值內可以誇奬:保持下去就可以當模特兒囉~
超過的話:記得常常運動,保持身心健康

打完之後覺得自己很囉嗦,差點又刪了:P
阿刃寫道…
回 Sofi:
因為我手邊沒有 BMI 的標準值範圍, 還有如果沒記錯的話, 不同年紀標準值不同, 所以這個等以後比較有時間再來改.
不過我現在右邊的是今天才寫好的 1.1 版...
修改了一些小地方 :P

這個網誌中的熱門文章

引數?! 參數??!! 什麼鬼啊!!

我想這個不僅是只有我會遇到的問題, 大概也是所有 Programming 的人都有的疑惑 (應該是吧?) 什麼引數?? 什麼參數?? 天啊... 到底是誰翻譯的呀!!!! 就字面上來看... 講句實在話, 我真的不了解, 大概是學藝不精所致. 也許有些人認為 => 管它那麼多!! 寫得出來就好了!! 不過龜毛如我, 我還是想搞清楚定義是什麼!

世界第一! 臺灣的驕傲! iPod 全球最貴 XD!!??

2009 年 9 月 10 日 凌晨 1 點鐘, Apple 於美國舉行了 Apple Special Event September 2009 . 先說點題外話, 這場演說對 Apple 迷而言, 是久違的一場, 也不知道還能有幾場像這場一樣, 由 Steve Jobs 親自站臺. 這場演說的主題, 除了 iTunes 9, iPhone (iPod touch) OS 更新為 3.1 外, 就是 iPod 產品線的更新. 在看完發表會之後, 我去研究了一下新 iPod 的全球售價, 這也是這篇文章的重點, 蘋果臺灣的定價創下了新的紀錄- 套用一下最近常聽到的 Slogan 世界第一, 臺灣的驕傲, iPod 全球最貴!!??

關於 Polymorphism! 是的, 就是多型!

這幾天真的是寫了好多關於程式基礎的東西, 今天心血來潮想寫個物件導向的特性 - Polymorphism. 是的, 你沒看錯, 就是多型. 多型, 這有什麼好寫的呀? 每本物件導向的書籍, 不管是程式語言或是方法論, 一定都會提到的基本特性. 去書局翻翻就有了, 甚至在網路上搜尋 “物件導向” “多型”, 就可以找到讀也讀不完的資料. 在這老調重彈, 似乎有點... 多餘? 會想把這個議題拿出來講, 關鍵就在於我發現 Objective-C 上的多型, 和我以前認識的不太一樣, 更加 Powerful.