自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java 8新特性探究(十三)JavaFX 8新特性以及開發(fā)2048游戲

開發(fā) 后端
JavaFX主要致力于富客戶端開發(fā),以彌補swing的缺陷,主要提供圖形庫與media庫,支持audio,video,graphics,animation,3D等,同時采用現代化的css方式支持界面設計。同時又采用XUI方式以XML方式設計UI界面,達到顯示與邏輯的分離。與android這方面確實有點相似性。

JavaFX主要致力于富客戶端開發(fā),以彌補swing的缺陷,主要提供圖形庫與media庫,支持audio,video,graphics,animation,3D等,同時采用現代化的css方式支持界面設計。同時又采用XUI方式以XML方式設計UI界面,達到顯示與邏輯的分離。與android這方面確實有點相似性。

JavaFX歷史

跟java在服務器端和web端成績相比,桌面一直是java的軟肋,于是Sun公司在2008年推出JavaFX,彌補桌面軟件的缺陷,請看下圖JavaFX一路走過來的改進

歷史

從上圖看出,一開始推出時候,開發(fā)者需使用一種名為JavaFX Script的靜態(tài)的、聲明式的編程語言來開發(fā)JavaFX應用程序。因為JavaFX Script將會被編譯為Java bytecode,程序員可以使用Java代碼代替。

JavaFX 2.0之后的版本摒棄了JavaFX Script語言,而作為一個Java API來使用。因此使用JavaFX平臺實現的應用程序將直接通過標準Java代碼來實現。

JavaFX 2.0 包含非常豐富的 UI 控件、圖形和多媒體特性用于簡化可視化應用的開發(fā),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)來繼續(xù)使用Caspian主題。

在此輸入圖片描述 

參考http://fxexperience.com/2013/03/modena-theme-update/

JavaFX 3D

在JavaFX8中提供了3D圖像處理API,包括Shape3D (Box, Cylinder, MeshView, Sphere子類),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子類),SceneAntialiasing等。Camera類也得到了更新。從JavaDoc中可以找到更多信息。

[[121326]]

富文本

強化了富文本的支持

[[121327]]

TreeTableView

在此輸入圖片描述

日期控件DatePicker

增加日期控件

在此輸入圖片描述

用于 CSS 結構的公共 API

  1. CSS 樣式設置是 JavaFX 的一項主要特性
  2. CSS 已專門在私有 API 中實現(com.sun.javafx.css 軟件包)
  3. 多種工具(例如 Scene Builder)需要 CSS 公共 API
  4. 開發(fā)人員將能夠定義自定義 CSS 樣式

WebView 增強功能

  1. Nashorn JavaScript 引擎 https://blogs.oracle.com/nashorn/entry/open_for_business
  2. WebSocket http://javafx-jira.kenai.com/browse/RT-14947
  3. Web Workers http://javafx-jira.kenai.com/browse/RT-9782

JavaFX Scene Builder 2.0

可視化工具,加速JavaFX圖形界面的開發(fā),下載地址

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開發(fā)2048游戲

2048雖然不像前段時間那么火了,但個人還是非常喜歡玩2048,空閑時間都忍不住來一發(fā),感謝 Gabriele Cirulli 發(fā)明了這了不起 (并且會上癮)的2048游戲,因為是用MIT協(xié)議開源出來,各種語言版本的2048游戲橫空出世,下圖是用JavaFX 8來開發(fā)的一款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的優(yōu)勢很明顯,各大主流IDE已經支持JavaFX的開發(fā)了,***的工具莫過于NetBeans,且隨著lambda帶來的好處,JavaFX的事件處理簡潔了不少,以前需要寫匿名函數類。另外JavaFX開源以來,JavaFX的生態(tài)環(huán)境也越來越活躍了,包括各種教程,嵌入式嘗試,還有一些開源項目,比如:ControlsFX,JRebirth,DataFX Flow,mvvmFX,TestFX 等等。還有JavaFX是可以運行在Android和ios上面,這個很贊!

好了,總結到這里也差不多了,在RIA平臺上面,有HTML5、Flex和微軟的Sliverlight,JavaFX能否表現優(yōu)秀,在于大家的各位,只要我們多用JavaFX,那么JavaFX也會越來越優(yōu)秀,任何語言都是這樣, THE END .

原文出自:http://my.oschina.net/benhaile/blog/335109

責任編輯:林師授 來源: 成熟的毛毛蟲的博客
相關推薦

2014-07-15 14:48:26

Java8

2014-07-14 11:34:53

Java 8Nashorn

2014-04-15 15:45:22

Java8Java8教程

2014-04-16 07:43:31

Java 8JRE

2021-02-22 11:51:15

Java開發(fā)代碼

2014-07-15 14:12:17

Java8

2014-07-15 13:57:53

Java8

2014-04-15 09:53:54

Java8類型注解

2014-04-15 16:01:00

Java8泛型

2014-04-16 07:48:56

Java 8Permgen

2013-04-09 12:59:21

WindowsPhon

2014-05-14 10:02:17

Java 8StampedLock

2014-03-19 11:04:14

Java 8Java8特性

2014-05-05 09:58:01

2014-07-15 15:01:01

Java8

2013-05-02 09:14:19

Java 8Java 8的新特性

2009-03-26 08:57:22

微軟IE8瀏覽器

2014-04-16 07:29:02

Java8Java日期

2011-05-07 16:08:29

Windows 8

2014-07-15 13:54:09

Java8
點贊
收藏

51CTO技術棧公眾號