Java8新特性之JavaFX 8_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JavaFX主要致力于富客戶(hù)端開(kāi)發(fā),以彌補(bǔ)swing的缺陷,主要提供圖形庫(kù)與media庫(kù),支持audio,video,graphic,animation,3D等,同時(shí)采用現(xiàn)代化的css方式支持界面設(shè)計(jì)。同時(shí)又采用XUI方式以XML方式設(shè)計(jì)UI界面,達(dá)到顯示與邏輯的分離。與android這方面確實(shí)有點(diǎn)相似性。
JavaFX歷史
跟java在服務(wù)器端和web端成績(jī)相比,桌面一直是java的軟肋,于是Sun公司在2008年推出JavaFX,彌補(bǔ)桌面軟件的缺陷,請(qǐng)看下圖JavaFX一路走過(guò)來(lái)的改進(jìn)
從上圖看出,一開(kāi)始推出時(shí)候,開(kāi)發(fā)者需使用一種名為JavaFX Script的靜態(tài)的、聲明式的編程語(yǔ)言來(lái)開(kāi)發(fā)JavaFX應(yīng)用程序。因?yàn)镴avaFX Script將會(huì)被編譯為Java bytecode,程序員可以使用Java代碼代替。 JavaFX 2.0之后的版本摒棄了JavaFX Script語(yǔ)言,而作為一個(gè)Java API來(lái)使用。因此使用JavaFX平臺(tái)實(shí)現(xiàn)的應(yīng)用程序?qū)⒅苯油ㄟ^(guò)標(biāo)準(zhǔn)Java代碼來(lái)實(shí)現(xiàn)。 JavaFX 2.0 包含非常豐富的 UI 控件、圖形和多媒體特性用于簡(jiǎn)化可視化應(yīng)用的開(kāi)發(fā),WebView可直接在應(yīng)用中嵌入網(wǎng)頁(yè);另外 2.0 版本允許使用 FXML 進(jìn)行 UI 定義,這是一個(gè)腳本化基于 XML 的標(biāo)識(shí)語(yǔ)言。 從JDK 7u6開(kāi)始,JavaFx就與JDK捆綁在一起了,JavaFX團(tuán)隊(duì)稱(chēng),下一個(gè)版本將是8.0,目前所有的工作都已經(jīng)圍繞8.0庫(kù)進(jìn)行。這是因?yàn)镴avaFX將捆綁在Java 8中,因此該團(tuán)隊(duì)決定跳過(guò)幾個(gè)版本號(hào),迎頭趕上Java 8。
JavaFx8的新特性
全新現(xiàn)代主題:Modena
新的Modena主題來(lái)替換原來(lái)的Caspian主題。不過(guò)在Application的start()方法中,可以通過(guò)setUserAgentStylesheet(STYLESHEET_CASPIAN)來(lái)繼續(xù)使用Caspian主題。
JavaFX 3D
在JavaFX8中提供了3D圖像處理API,包括Shape3D (Box, Cylinder, MeshView, Sphere子類(lèi)),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子類(lèi)),SceneAntialiasing等。Camera類(lèi)也得到了更新。從JavaDoc中可以找到更多信息。
富文本
強(qiáng)化了富文本的支持
TreeTableView
日期控件DatePicker
增加日期控件
用于 CSS 結(jié)構(gòu)的公共 API
- CSS 樣式設(shè)置是 JavaFX 的一項(xiàng)主要特性
- CSS 已專(zhuān)門(mén)在私有 API 中實(shí)現(xiàn)(com.sun.javafx.css 軟件包)
- 多種工具(例如 Scene Builder)需要 CSS 公共 API
- 開(kāi)發(fā)人員將能夠定義自定義 CSS 樣式
WebView 增強(qiáng)功能
- 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圖形界面的開(kāi)發(fā), JavaFX Scene Builder如同NetBeans一般,通過(guò)拖拽的方式配置界面,待完成界面之後,保存為FXML格式文件,此文件以XML描述物件配置,再交由JavaFX程式處理,因此可減少直接以JavaFX編寫(xiě)界面的困難度。 JavaFX Scene Builder 2.0新增JavaFX Theme預(yù)覽功能,菜單「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開(kāi)發(fā)2048游戲
2048雖然不像前段時(shí)間那么火了,但個(gè)人還是非常喜歡玩2048,空閑時(shí)間都忍不住來(lái)一發(fā),感謝 Gabriele Cirulli 發(fā)明了這了不起 (并且會(huì)上癮)的2048游戲,因?yàn)槭怯肕IT協(xié)議開(kāi)源出來(lái),各種語(yǔ)言版本的2048游戲橫空出世,下圖是用JavaFX 8來(lái)開(kāi)發(fā)的一款2048。
所用到的技術(shù)
- Lambda expressions
- Stream API
- JavaFX 8
- JavaFX CSS basics
- JavaFX animations
fx2048相關(guān)類(lèi)的說(shuō)明
- Game2048,游戲主類(lèi)
- GameManager,包含游戲界面布局(Board)以及Grid的操作(GridOperator)
- Board,包含labels ,分?jǐn)?shù),grid ,Tile
- Tile,游戲中的數(shù)字塊
- GridOperator,Grid操作類(lèi)
- Location,Direction 位置幫助類(lèi)
- RecordManager,SessionManager,紀(jì)錄游戲分?jǐn)?shù),會(huì)話(huà)類(lèi)
總結(jié)
比起AWT和SWING,JavaFX的優(yōu)勢(shì)很明顯,各大主流IDE已經(jīng)支持JavaFX的開(kāi)發(fā)了,最佳的工具莫過(guò)于NetBeans,且隨著lambda帶來(lái)的好處,JavaFX的事件處理簡(jiǎn)潔了不少,以前需要寫(xiě)匿名函數(shù)類(lèi)。另外JavaFX開(kāi)源以來(lái),JavaFX的生態(tài)環(huán)境也越來(lái)越活躍了,包括各種教程,嵌入式嘗試,還有一些開(kāi)源項(xiàng)目,比如:ControlsFX,JRebirth,DataFX Flow,mvvmFX,TestFX 等等。還有JavaFX是可以運(yùn)行在Android和ios上面,這個(gè)很贊! 好了,總結(jié)到這里也差不多了,在RIA平臺(tái)上面,有HTML5、Flex和微軟的Sliverlight,JavaFX能否表現(xiàn)優(yōu)秀,在于大家的各位,只要我們多用JavaFX,那么JavaFX也會(huì)越來(lái)越優(yōu)秀,任何語(yǔ)言都是這樣, THE END .
相關(guān)文章
解決springmvc使用@PathVariable路徑匹配問(wèn)題
這篇文章主要介紹了解決springmvc使用@PathVariable路徑匹配問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
springAop實(shí)現(xiàn)權(quán)限管理數(shù)據(jù)校驗(yàn)操作日志的場(chǎng)景分析
這篇文章主要介紹了springAop實(shí)現(xiàn)權(quán)限管理數(shù)據(jù)校驗(yàn)操作日志的場(chǎng)景分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
JavaWeb學(xué)習(xí)過(guò)程之MVC查詢(xún)模式詳解
這篇文章主要介紹了JavaWeb學(xué)習(xí)過(guò)程之MVC查詢(xún)模式詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
詳解Java中Dijkstra(迪杰斯特拉)算法的圖解與實(shí)現(xiàn)
Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。本文將詳解該算法的圖解與實(shí)現(xiàn),需要的可以參考一下2022-05-05
mybatis自定義類(lèi)型處理器的實(shí)現(xiàn)
在MyBatis使用中,有時(shí)需要對(duì)特定數(shù)據(jù)類(lèi)型進(jìn)行定制處理,自定義類(lèi)型處理器(TypeHandler)可以實(shí)現(xiàn)這一需求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10
實(shí)例詳解Spring Boot實(shí)戰(zhàn)之Redis緩存登錄驗(yàn)證碼
本章簡(jiǎn)單介紹redis的配置及使用方法,本文示例代碼在前面代碼的基礎(chǔ)上進(jìn)行修改添加,實(shí)現(xiàn)了使用redis進(jìn)行緩存驗(yàn)證碼,以及校驗(yàn)驗(yàn)證碼的過(guò)程。感興趣的的朋友一起看看吧2017-08-08
Spring data JPA只查詢(xún)部分字段問(wèn)題及解決
這篇文章主要介紹了Spring data JPA只查詢(xún)部分字段問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

