JavaFX:當前的狀態和不久的將來

梧桐雨—168發表於2008-03-18

在去年十月份,InfoQ.com釋出了一篇名為“JavaFX概覽”的文章。Sun Microsystem的Chet Haase 接著又向InfoQ.com分享了一些JavaFX為Java平臺帶來的其他方面影響的細節。

Haase通過一些可能在將來構建RIA應用時有用的範例,向InfoQ.com的讀者簡要介紹了JavaFX:

JavaFX指令碼是一門基於Java平臺的新語言。它提供一些新的能力以及新的語法來使得實現某些功能更加容易,比如構建圖形和GUI應用程式。

很 明顯,現在是可以使用Java的Swing和Java 2D庫來編寫豐富、動態的GUI應用程式,但並不是那麼容易做到。JavaFX指令碼讓這樣的應用程式更加容易地實現。對於Java開發者,這意味著讓他們 的工作更加簡單,仍然可以藉助於他們已經具備的Java平臺開發的知識和技能。而對於其他那些不使用Java平臺的開發者而言,意味著他們現在可以充分利 用平臺的豐富特性和強大之處,並且使用一門他們更容易學習和使用的語言。

關於OpenJFX專案的當前狀態:

OpenJFX 是一個站點,在它上面,JavaFX的不同部分正在以開放的形式進行開發。比如說,用於JavaFX指令碼的編譯器正在OpenJFX站點上進行開發,因此有興趣試試早期版本的開發者可以獲得最新的拷貝,甚至能為開發小組提出自己的建議和反饋。

OpenJFX上還寄宿或關聯著其他一些正在進行或即將成立的專案。比如Scene Graph專案 ,一個使能JavaFX指令碼的圖形、GUI和動畫功能的執行時庫。

最後,OpenJFX也是專案當前文件的來源;指南、參考資料和一些指向blog及其他資源的連結都可以在OpenJFX站點上找到。

Haase這樣描述JavaFX的元件模型:

我把JavaFX指令碼元件模型看作是Swing++--,如果這條語句能編譯通過的話:)。也就是說,JavaFX指令碼的許多元件,比如button,直接依賴底層的Swing平臺的功能。因此,JavaFX指令碼的button其實就是個Swing的JButton。

但有一些不同之處非常重要。比如:


如果沒有必要傳播某個Swing元件中恰巧是public的方法和域時,這個物件的JavaFX版本就可以選擇不再擁有那些域,從而更易於理解和程式設計。
JavaFX指令碼元件層功能建立於底層的元件之上,從而能夠為FX執行時提供可以利用的底層元件的功能。比如,JavaFX指令碼語言的 一個新的很酷的功能就是能夠觸發任意物件的域值的變化。這就確保像button這樣任意底層元件的FX包裝類都能把變化正確地傳播到JavaFX指令碼層。
JavaFX指令碼也提供了一些Swing中並不包含的元件和其他GUI物件。比如,當前的JavaFX指令碼版本提供了VBox和HBox容器物件,用以在它們的子物件上施以簡單的垂直(VBox)或水平(HBox)佈局約束。


Hasse還被問及對於JSF的普遍批評(無論公平與否)中的一個——它提供了一個構建UI元件的框架,但沒有直接提供所有用於簡單構建高質量UI的元件。他被問到JavaFX是怎樣以不同的方式解決這個問題的:

我無法解決關於JSF的問題(就我個人而言不是很瞭解JSF),但JavaFX會很樂意能夠利用Java平臺元件模型的強大力 量。Swing的優勢之一是它豐富的GUI元件,以及新增自定義元件的靈活性。既然JavaFX指令碼層是在Swing之上,這項優勢自然就被繼承了下來。

Haase談到部署JavaFX應用程式:

JavaFX指令碼應用程式使用和Java應用程式相同的部署方式:作為獨立執行的應用程式,或者執行在瀏覽器中的applet,或者是Java Web Start應用程式(這樣可以通過網路來部署,但本質上是在一個安全的沙箱環境中獨立執行在桌面上)。


Haase還被問到關於開發一個類似於Silverlight或Flash播放器的瀏覽器外掛的計劃問題:

我們已經擁有一個Java的瀏覽器外掛,也就是我們所說的“Java外掛”。JavaFX指令碼應用程式可以像Java程式那樣使 用這個外掛。但是,我們現在正在通過一些非常重要的方式來修改對這個外掛的支援,尤其在向著支援更多面向消費者的JavaFX應用程式的方向去努力。比 如,對於Java和JavaFX應用程式的啟動時間方面的改善,將會使啟動時間比現在有顯著的提高。而且,我們也正在重寫外掛程式碼,以使其更加健壯和靈 活。這兩個改進會出現在“Java SE 6,Update 10”的釋出版中,你可以在下面這個站點獲得早期的版本:https://jdk6.dev.java.net/6uNea.html

對於JavaFX和Adobe Flex/AIR,Silverlight及其他富因特網平臺在特性、部署和成熟度方面的比較:

我覺得我現在寧願不要直接對它們作出比較,因為我們現在還處於JavaFX的開發中期,所以任何相對於已經發布的產品的比較都是不成熟的。我能說的是JavaFX在RIA領域真正的優勢之一在於它的強大功能和它所基於的底層Java平臺的高成熟度。

在最後:

我們對來自於社群的幫助很感興趣。歡迎登入OpenJFX站點,獲取最新的版本,體驗它的功能,編寫一些JavaFX指令碼應用程式,並把反饋傳送給我們!


衷心希望OpenJFX專案能夠達到它所有的目標,並給構建RIA應用的Java開發者一個強有力的選擇。

檢視英文原文:JavaFX: Current Status and What’s Upcoming

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-209704/,如需轉載,請註明出處,否則將追究法律責任。

相關文章