跳到主要內容

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

Mac OS X 10.6 同步收取 Gmail, how?

在 Apple 官方的 Mac OS X 10.6 介紹網頁中, 雖然並沒有在內建的郵件軟體 - Mail 著墨太多. 但是實際上 Mail 也做了一些改善, 讓使用可以更方便, 而這篇文主要目的就是說明怎麼讓 Mail 與 Gmail 進行同步. 在過去使用郵件軟體收取電子郵件的使用經驗中, 往往都需要輸入很多資料, 什麼 "寄件伺服器" "收件伺服器" "通訊協定"... 等等等, 這對一般用戶來說, 只能說是災難. 畢竟沒學過那些專有名詞, 天曉得那是些什麼東西!? 而 Mac OS X 10.6 中的 Mail 不同了, 現在只需要輸入 Email 帳號及密碼, 軟體自動搞定細部設定! 有沒有這麼簡單!? 手邊有 Hotmail 的朋友可以試試看, 只要輸入帳號密碼, 10.6 的 Mail 就會幫你設定好其它需要設定的資料. 不過今天的主角是 Gmail 啦! 而要使用的是 Gmail 提供的 IMAP 的功能, 在使用前得先到 Gmail 中進行一些簡單的設定, 當然小弟也會說明這樣設定的理由 :) OK! Here we go!!!

第二章 緊急返鄉 - 推著爺爺去散步

也許是曾經身為軍人的關係, 爺爺很排斥使用輪椅... 也許是曾經身為一家之主的榮耀, 縱使小便不方便卻堅持不肯使用尿壺... 也許就是因為爺爺是爺爺, 所以很少開口要我幫忙他些什麼凡是自己來, 總是他在給我, 我卻很少能給他什麼... 只是兩次的手術, 在病床上躺久了, 他的身體狀況真的大不如前... 沒辦法想自己起來走走就走走, 想坐到沙發就坐到沙發, 想拿起遙控器看看電視就拿, 想回房休息就回房間. 這樣的光景, 以前是再熟悉不過的... 很希望爺爺真的能趕快好起來, 而回家時一切都沒變, 爺爺看到我回家開心大笑起身握握我的手... 現在的他, 只能任我們宰割... 儘管他再怎麼使勁, 那纖細的雙腿依然撐不住他的身子, 不喜歡輪椅也得坐輪椅... 儘管他再怎麼不願意, 行動不方便的他還是被我們包了尿布, 不喜歡尿布也得包尿布... 爺爺一點點的隱私, 一點點的尊嚴也不剩, 連不願意吃飯, 都被我們直接灌食, 連絕食的權力都沒有...