JavaFX:當前的狀態和不久的將來
在去年十月份,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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用sestatus命令來檢視SELinux的當前狀態Linux
- status 返回當前請求的http狀態碼HTTP
- 如何檢視資料庫當前的狀態?資料庫
- java檢測當前CPU負載狀態的方法Java負載
- unity 動態修改當前橫豎屏狀態Unity
- javafx和swing巢狀使用的方法Java巢狀
- 提取DB2多分割槽環境當前的狀態DB2
- 不久前讀的番茄工作法
- 統計當前系統中不同執行狀態的程式數量
- 區塊鏈當前的發展現狀區塊鏈
- JavaFX會將Sun送回未來嗎?Java
- 五大方面:機器學習如何在不久的將來改變教育機器學習
- 一些當前和即將開放的雲平臺
- 有狀態和無狀態的區別
- linux下如何關閉防火牆?如何檢視防火牆當前的狀態Linux防火牆
- JS在瀏覽器中判斷當前網路狀態JS瀏覽器
- H5 記錄當前頁面的選中狀態,sessionStorageH5Session
- 直播平臺原始碼,快速獲取當前狀態列高度原始碼
- 使用常見的網路命令檢視當前網路狀態——Mac OS X篇Mac
- ora-04068 ora-06508 已丟棄程式包 的當前狀態
- js外掛--獲取指定時間距離當前時間狀態:上週,當前周,前天,昨天,今天,明天,後天,當前周,下週。JS
- 原來MSSQL也有shutdown的狀態SQL
- [100分求助]如何使用VC程式設計獲取網路卡當前的狀態 - IT者C程式程式設計
- 事件溯源:是來自事件的狀態與作為狀態的事件? - verraes事件
- Android檢測網路狀態,判斷當前網路是否可用Android
- php 獲取當前域名和當前協議PHP協議
- Spring Bean Scope 有狀態的Bean和無狀態的BeanSpringBean
- 程式的建立和程式的狀態
- 狀態模式的理解和示例模式
- 更新TableView和CollectionView的狀態View
- 如何檢測 SAP 電商雲 Spartacus UI 當前正處於導航狀態UI
- 規劃ASM DISK GROUP、檢視asm 磁碟當前狀態、mount or dismount 磁碟組ASM
- Oracle查詢當前使用者和當前使用者下的所有表Oracle
- SSD固態硬碟過人之處和當前困境解析硬碟
- Oracle資料庫的靜默狀態和掛起狀態Oracle資料庫
- oracle的一致讀和當前讀Oracle
- 【JS】在連續性監聽事件中,監聽當前狀態是否變化JS事件
- 行為和狀態的關係