首頁 >Java >java教程 >解讀Java8新特性--JavaFX 8

解讀Java8新特性--JavaFX 8

零下一度
零下一度原創
2017-06-17 14:07:213214瀏覽

這篇文章主要介紹了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 樣式設定是JavaFX 的一個主要特性

  • CSS 已專門在私有API 中實作(com.sun.javafx.css 軟體包)

  • 多種工具(例如Scene Builder)需要CSS 公共API

開發人員將能夠定義自訂CSS 樣式
  • WebView 增強功能
  • ######Nashorn ###JavaScript ### 引擎 ###https://###blogs.oracle.com/nashorn/entry/open_for_business############WebSocket http://javafx-jira.kenai.com /browse/RT-14947############Web Workers http://javafx-jira.kenai.com/browse/RT-9782############# ###JavaFX Scene Builder 2.0########可視化工具,加速JavaFX圖形介面的開發, JavaFX Scene Builder如同NetBeans一般,透過拖曳的方式配置介面,待完成介面之後,儲存為FXML格式文件,此文件以XML描述物件配置,再交由JavaFX程式處理,因此可減少直接以JavaFX編寫介面的困難度。 JavaFX Scene Builder 2.0新增JavaFX Theme預覽功能,選單「Preview」→「JavaFX Theme」選擇不同的主題,包括:############Modena (FX8).##### #######Modena Touch (FX8).###
  • 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

  • JavaFX 8

  • #JavaFX CSS basics

  • JavaFX animations

  • fx2048相關類別的說明

  • Game2048,遊戲主類別
  • #GameManager,包含遊戲介面佈局(Board)以及Grid的操作(GridOperator)
  • Board,包含labels ,分數,grid ,Tile

Tile,遊戲中的數字區塊##GridOperator,Grid操作類別

Location,Direction 位置協助類別

###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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn