隨著學習 JavaFX 的過程中, 我慢慢的將這隻程式進行改版. 這次更新, 最大的差異就是顏色的配置和採用了語系檔, 當然還有其它的小變動, 捨棄使用 Java Class 改寫成 Pure JavaFX, 畫了 icon 等等.
只是 icon 目前只有在當成應用程式執行時會出現, 透過 Web Start 或 Applet 都沒辦法顯示, 推測是 JavaFX 本身的問題.網路上也沒找到可以支援我解決這個問題的文章, 暫時就只能等囉, 這就是學新技術難免會遇到的問題, 但也讓我看清楚, 距離軟體佈屬的完整性與易用性, JavaFX 還有進步的空間!
固然有語系的支援對開發軟體者或使用者來說都很好, but... 目前支援僅限於 JavaFX Desktop 的 Profile, 換句話說, JavaFX Mobile 尚不支援語系的內建函式 orz... 這個就 囧rz 了. 除了選擇自己利用其它套件寫之外, 好吧... 我這懶人就期待下一版 JavaFX 會有大幅度的 improvement!! Sun & Oracle 加油!!!!! XD
這就是除了下載整個專案執行, 不然透過 Web Start 或 Applet 執行都沒辦法看到的 icon 們 XD
接著就簡單說一下該怎麼進行語系的支援, 首先在 Java 中有 .properties 檔, 相對的, 在 JavaFX 中也有 .fxproperties 檔. 這就是用來作為語系支援的屬性檔囉! 在屬性檔中, 是成對的 key 與 value 的純文字, 範例如下:
那在程式中該怎麼用? 用法超簡單!! 只要在需要用到的地方透過 ##key 就可以把 value 叫出來了, 範例如下:
講到這, 我相信腦袋動得很快的你們馬上就會想到一個問題, 那如果有很多個語系屬性檔怎麼辦? 多國語系又該怎麼處理? 這正是 JavaFX Runtime 猛的地方, 只要在屬性檔的檔名下手就好了. 屬性檔的檔名是有規則的! 哪個 .fx 檔會用到哪個 .fxproperties 主檔名必須相同, 接著語系屬性檔必須標明語系. 簡單來說語系屬性檔的完整檔名必須為 主檔名_語系識別碼.fxproperties, 範例如下:
view.fx 中使用到 "cm" 和 "inch" 兩個 key, Java Runtime 會自動依照現在目前的語系名稱, 假設為英文 (en), 自動的尋找是否存在 view_en.fxproperties 這個屬性檔, 並且找出對應的 value 套用進 view.fx 的 JavaFX Script 中. 依照這種命名方式, 開發人員可以簡單的寫出支援多國語系的程式, 但請注意檔名必須要正確, 否則 JavaFX Runtime 可是會找不到語系屬性檔的!! 附帶一提, 正體中文的語系碼為 zh_TW, 請牢牢記好 :P
喇咧了這麼多, 希望對一些同在學習 JavaFX 的朋友們有些幫助, 但... 怎麼都沒人來一起開發呀 XD 明明已經放在 Kenai 上這麼久了 orz... COME SOMEBODY!!! I NEED HELP!!!!!! 手機正式支援 JavaFX Mobile 環境的日子已經不遠了, 誰來幫忙改個 Mobile 版吧 囧rz...
只是 icon 目前只有在當成應用程式執行時會出現, 透過 Web Start 或 Applet 都沒辦法顯示, 推測是 JavaFX 本身的問題.網路上也沒找到可以支援我解決這個問題的文章, 暫時就只能等囉, 這就是學新技術難免會遇到的問題, 但也讓我看清楚, 距離軟體佈屬的完整性與易用性, JavaFX 還有進步的空間!
固然有語系的支援對開發軟體者或使用者來說都很好, but... 目前支援僅限於 JavaFX Desktop 的 Profile, 換句話說, JavaFX Mobile 尚不支援語系的內建函式 orz... 這個就 囧rz 了. 除了選擇自己利用其它套件寫之外, 好吧... 我這懶人就期待下一版 JavaFX 會有大幅度的 improvement!! Sun & Oracle 加油!!!!! XD
這就是除了下載整個專案執行, 不然透過 Web Start 或 Applet 執行都沒辦法看到的 icon 們 XD
接著就簡單說一下該怎麼進行語系的支援, 首先在 Java 中有 .properties 檔, 相對的, 在 JavaFX 中也有 .fxproperties 檔. 這就是用來作為語系支援的屬性檔囉! 在屬性檔中, 是成對的 key 與 value 的純文字, 範例如下:
"cm" = "公分"
等號的左邊 "cm" 是 key, 而等號的右邊 "公分" 則是 value, 值得注意的一點, 記得要用雙引號 ("") 來標明這是字串.那在程式中該怎麼用? 用法超簡單!! 只要在需要用到的地方透過 ##key 就可以把 value 叫出來了, 範例如下:
def cm = ##"cm";
怎麼樣? 夠簡單吧!! 在 key 前面加上兩個井號 (##), 接著打上 key (別忘了雙引號), 就可以把語系屬性檔中的 value 給叫出來.講到這, 我相信腦袋動得很快的你們馬上就會想到一個問題, 那如果有很多個語系屬性檔怎麼辦? 多國語系又該怎麼處理? 這正是 JavaFX Runtime 猛的地方, 只要在屬性檔的檔名下手就好了. 屬性檔的檔名是有規則的! 哪個 .fx 檔會用到哪個 .fxproperties 主檔名必須相同, 接著語系屬性檔必須標明語系. 簡單來說語系屬性檔的完整檔名必須為 主檔名_語系識別碼.fxproperties, 範例如下:
view.fx 中使用到 "cm" 和 "inch" 兩個 key, Java Runtime 會自動依照現在目前的語系名稱, 假設為英文 (en), 自動的尋找是否存在 view_en.fxproperties 這個屬性檔, 並且找出對應的 value 套用進 view.fx 的 JavaFX Script 中. 依照這種命名方式, 開發人員可以簡單的寫出支援多國語系的程式, 但請注意檔名必須要正確, 否則 JavaFX Runtime 可是會找不到語系屬性檔的!! 附帶一提, 正體中文的語系碼為 zh_TW, 請牢牢記好 :P
喇咧了這麼多, 希望對一些同在學習 JavaFX 的朋友們有些幫助, 但... 怎麼都沒人來一起開發呀 XD 明明已經放在 Kenai 上這麼久了 orz... COME SOMEBODY!!! I NEED HELP!!!!!! 手機正式支援 JavaFX Mobile 環境的日子已經不遠了, 誰來幫忙改個 Mobile 版吧 囧rz...
留言