這篇文章主要介紹了Java8新特性之JavaFX 8的相關知識,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
JavaFX主要致力於富客戶端開發,以彌補swing的缺陷,主要提供圖形庫與media庫,支援audio,video,graphic,animation,3D等,同時以現代化的css方式支援介面設計。同時採用XUI方式以XML方式設計UI介面,達到顯示與邏輯的分離。與android這方面確實有點相似。
JavaFX歷史
跟java在伺服器端和web端成績相比,桌面一直是java的軟肋,於是Sun公司在2008年推出JavaFX,彌補桌面軟體的缺陷,請看下圖JavaFX一路走過來的改進
從上圖看出,一開始推出時候,開發者需使用一種名為JavaFX Script的靜態的、聲明式的程式語言來開發JavaFX應用程式。因為JavaFX Script將會被編譯為Java bytecode,程式設計師可以使用Java程式碼取代。 JavaFX 2.0之後的版本摒棄了JavaFX Script語言,而作為Java API來使用。因此使用JavaFX平台實現的應用程式將直接透過標準Java程式碼來實現。 JavaFX 2.0 包含非常豐富的UI 控制項、圖形和多媒體特性用於簡化視覺化應用程式的開發,WebView可直接在應用程式中嵌入網頁;另外2.0 版本允許使用FXML 進行UI 定義,這是一個腳本化基於XML 的識別語言。 從JDK 7u6開始,JavaFx就與JDK捆綁在一起了,JavaFX團隊稱,下一個版本將是8.0,目前所有的工作都已經圍繞8.0庫進行。這是因為JavaFX將捆綁在Java 8中,因此該團隊決定跳過幾個版本號,迎頭趕上Java 8。
JavaFx8的新功能
#全新現代主題:Modena
新的Modena主題來替換原來的Caspian主題。不過在Application的start()方法中,可以透過setUserAgentStylesheet(STYLESHEET_CASPIAN)來繼續使用Caspian主題。
JavaFX 3D
在JavaFX8中提供了3D影像處理API,包括Shape3D (Box, Cylinder, MeshView, Sphere子類別),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子類別),SceneAntialiasing等。 Camera類別也得到了更新。從JavaDoc中可以找到更多資訊。
富文本
強化了富文本的支援
#
TreeTableView
日期控制項DatePicker
#增加日期控制項
##
##用於CSS 結構的公共API
開發人員將能夠定義自訂CSS 樣式
Modena High Contrast – Black on White (FX8).
Modena High Contrast – White on Black (FX8).
Modena High Contrast – Yellow on Black (FX8).
Caspian (FX2).
Caspian Embedded (FX2).
Caspian Embedded QVGA (FX2).
JavaFX 8開發2048遊戲
2048雖然不像前段時間那麼火了,但個人還是非常喜歡玩2048,空閒時間都忍不住來一發,感謝Gabriele Cirulli 發明了這了不起(並且會上癮)的2048遊戲,因為是用MIT協定開源出來,各種語言版本的2048遊戲橫空出世,下圖是用JavaFX 8來開發的一款2048。
所使用的技術
#Lambda expressions
#Stream API
fx2048相關類別的說明
#GameManager,包含遊戲介面佈局(Board)以及Grid的操作(GridOperator)
Tile,遊戲中的數字區塊##GridOperator,Grid操作類別
###RecordManager,SessionManager,紀錄遊戲分數,會話類別#################總結####### #####比起AWT和SWING,JavaFX的優勢很明顯,各大主流IDE已經支援JavaFX的開發了,最佳的工具莫過於NetBeans,且隨著lambda帶來的好處,JavaFX的###事件處理###簡潔了不少,以前需要寫###匿名函數###類別。另外JavaFX開源以來,JavaFX的生態環境也越來越活躍了,包括各種教程,嵌入式嘗試,還有一些開源項目,例如:ControlsFX,JRebirth,DataFX Flow,mvvmFX,TestFX 等等。還有JavaFX是可以運行在Android和ios上面,這個很讚! 好了,總結到這裡也差不多了,在RIA平台上面,有HTML5、Flex和微軟的Sliverlight,JavaFX能否表現優秀,在於大家的各位,只要我們多用JavaFX,那麼JavaFX也會越來越優秀,任何語言都是這樣, THE END .###以上是解讀Java8新特性--JavaFX 8的詳細內容。更多資訊請關注PHP中文網其他相關文章!