JavaFX對Java開發(fā)者到底意味著什么
關于JavaFX已經(jīng)有非常多的輿論報道、討論和手冊指南,對我們這些普通的Java開發(fā)者而言,JavaFX從技術角度來講并不難掌握,更難的是我們要搞清楚它對我們而言到底是否有用,也即它到底意味著什么呢?James Sugrue在Javalobby的博客中闡述了他對此的看法。
簡述歷史
JavaFX是一個富客戶端平臺,可以創(chuàng)建出在多種設備上都可以運行的應用,這些設備包括電腦桌面和移動設備。JavaFX其中的一個主要優(yōu)點是你為其中一個設備寫出的代碼可以運行在任何其他設備上,因為JavaFX集成了Java runtime,只要桌面安裝了Java或者手持設備支持JavaME,那么這些代碼就可以運行。
JavaFX首次公布在Sun在2007年的JavaONE大會上,Version 1.0發(fā)布在2008年12月,當時的主要對象是桌面平臺盡管近期發(fā)布的1.1又瞄準了移動設備。簡而言之,JavaFX是Sun推出的競爭產(chǎn)品,針對現(xiàn)有的兩個主要的RIA應用:微軟的SilverLight和Adobe的Flex/AIR。
JavaFX最大的優(yōu)勢來自于它跟Java代碼、Swing組件的交互性,有人對Sun投資JavaFX持有懷疑態(tài)度,他們認為Sun應當更好地來關注Swing,但無論怎樣JavaFX的開發(fā)為Java開發(fā)者開啟了更多的門。而且JavaFX已經(jīng)有了很高的下載數(shù)量,在version 1.1發(fā)布之前,下載量接近80,000,000。
有什么JavaFX可以做而Swing做不到?
JavaFX的優(yōu)點之一是它能夠將JavaFX應用從web瀏覽器中抽取到桌面,因而這將創(chuàng)建像WidgetFX這樣的應用變得非常簡單,從而提供桌面型的小程序。富視頻內容(Rich video content)通過JavaFX提供的On2 視頻編碼器變得可能,而且更妙的是這些視頻編碼器可以工作于Swing應用中。
JavaFX應用是由JavaFX Script編寫的。JavaFX Script充分利用了一款場景圖形模型(scene graph model),它可以在你的UI中生成、轉變和卡通制作。使用JavaFX Script你可以快速地將用戶界面放置在一起,因為這個語言是專門為用戶界面的創(chuàng)建而編寫的,因而生成的應用比Swing應用感覺上更加豐富、流暢。
JavaFX在技術層面的定位
“富互聯(lián)網(wǎng)應用”可以被定義為一種表現(xiàn)桌面應用特征的web應用,有人會因此而想起RIA,有人會想起Flash。也許除此之外,人們就不再認為其他的也是富互聯(lián)網(wǎng)應用,但Java Applets曾提供給我們第一個真正意義上的餓RIA。10年來,Sun繼往開來,為Java開發(fā)者提供了一種新的方法。
那么用JavaFX編寫應用意味著什么呢?如果我們需要的應用跟其他Java組件和庫有很強的交互性,對UI層來說JavaFX就是一個好的解決方案;如果你想費最少的力氣寫出一個應用工作在桌面和移動設備上,JavaFX就是你所需要的技術。單一原文件維護(single-sourcing)是JavaFX的主要優(yōu)點。
但如果考慮到現(xiàn)在的應用,JavaFX就有些別扭。因為現(xiàn)在還沒有官方的方法將JavaFX植入到Swing(或者SWT)應用中,盡管有可用的工作區(qū)(http://blogs.sun.com/javafx/entry/how_to_use_javafx_in),但我可能還是不會將JavaFX應用于產(chǎn)品級別的應用中。從我跟JavaFX團隊的交流中獲悉,這些問題將在以后的版本中解決。如果有好的架構、UI層的清晰分離,將UI代碼移動到JavaFX中是有可能的。
在編寫移動設備方面,JavaFX比JavaME提供了更為豐富的圖形和UI。用JavaFX編寫移動設備的代碼很簡單,而且易于測試,因為桌面和移動端使用的是相同的編程模式。
總而言之,如果你想嘗嘗鮮,想有一個比Swing更浮華閃光的用戶界面,JavaFX是不錯的選擇。
哪些組件
JavaFX的下載有三種不同的組件。SDK包括JavaFX編譯器、runtime工具和針對視頻、圖形和網(wǎng)絡設備的各種庫,這些均會在創(chuàng)建桌面或者移動平臺的應用時用到。
還有JavaFX的Netbeans插件。下載網(wǎng)址中提供了一個可以下載整個JavaFX的Netbeans IDE (6.5)的鏈接。這有助于更快地創(chuàng)建JavaFX應用,而且提供了移動仿真器,從而可以為移動設備預覽所編寫的應用。
最后,JavaFX 1.1 Production Suite是一套工具和插件,設計者可以將圖形數(shù)據(jù)輸出到JavaFX應用中。這對Java開發(fā)者而言可能是興趣最小的一個組件,但圖形設計人員會更喜歡它。
當然了,那些傾向于使用Eclipse的開發(fā)者,也有一個可用的插件,可以將JavaFX特性添加到Eclipse項目中。
結束語
JavaFX入手的最好方式是去Netbeans中看看那里已有的示例項目。
JavaFX還很年輕,未來的路很長。如果你想尋找Flash的替代者,如果你很熟悉Java,那么JavaFX絕對值得一用。在未來的版本中,我確定我們會找到更多喜歡JavaFX作為Java應用UI技術的原因。
【編輯推薦】