Java 8新特性探究(十三)JavaFX 8新特性以及开发2048游戏

JavaFX主要致力于富客户端开发,以弥补swing的缺陷,主要提供图形库与media库,支持audio,video,graphics,animation,3D等,同时采用现代化的css方式支持界面设计。同时又采用XUI方式以XML方式设计UI界面,达到显示与逻辑的分离。与android这方面确实有点类似性。 ##JavaFX历史##css

跟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主题。 在此输入图片描述 参考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中能够找到更多信息。 在此输入图片描述 ###富文本 强化了富文本的支持 在此输入图片描述 ###TreeTableView 在此输入图片描述 ###日期控件DatePicker 增长日期控件 在此输入图片描述 ###用于 CSS 结构的公共 APIjava

  1. CSS 样式设置是 JavaFX 的一项主要特性
  2. CSS 已专门在私有 API 中实现(com.sun.javafx.css 软件包)
  3. 多种工具(例如 Scene Builder)须要 CSS 公共 API
  4. 开发人员将可以定义自定义 CSS 样式

###WebView 加强功能android

  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图形界面的开发,下载地址 JavaFX Scene Builder如同NetBeans通常,经过拖拽的方式配置界面,待完成界面之後,保存为FXML格式文件,此文件以XML描述物件配置,再交由JavaFX程式处理,所以可減少直接以JavaFX编写界面的困難度。 JavaFX Scene Builder 2.0新增JavaFX Theme预览功能,菜单「Preview」→「JavaFX Theme」选择不一样的主題,包括:ios

  • 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。 游戏截图 ###所用到的技术git

  • 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平台上面,有HTML五、Flex和微软的Sliverlight,JavaFX可否表现优秀,在于你们的各位,只要咱们多用JavaFX,那么JavaFX也会愈来愈优秀,任何语言都是这样, THE END .web

##JavaFX历史##express

跟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主题。 在此输入图片描述 参考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中能够找到更多信息。 在此输入图片描述 ###富文本 强化了富文本的支持 在此输入图片描述 ###TreeTableView 在此输入图片描述 ###日期控件DatePicker 增长日期控件 在此输入图片描述 ###用于 CSS 结构的公共 API编程

  1. CSS 样式设置是 JavaFX 的一项主要特性
  2. CSS 已专门在私有 API 中实现(com.sun.javafx.css 软件包)
  3. 多种工具(例如 Scene Builder)须要 CSS 公共 API
  4. 开发人员将可以定义自定义 CSS 样式

###WebView 加强功能windows

  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图形界面的开发,下载地址 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平台上面,有HTML五、Flex和微软的Sliverlight,JavaFX可否表现优秀,在于你们的各位,只要咱们多用JavaFX,那么JavaFX也会愈来愈优秀,任何语言都是这样, THE END .

相关文章
相关标签/搜索