Java8新特性之JavaFX 8_动力节点Java学院整理
发布时间 - 2026-01-11 01:47:00 点击率:次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
# eclipse/IDEA配置javafx项目步骤(图文教程)
# JavaFX实现拖拽结点效果
# JavaFx实现拼图游戏
# JavaFX Metro UI 和 开发库使用简介
# javafx实现五子棋游戏
# javafx tableview鼠标触发更新属性详解
# JavaFX 监听窗口关闭事件实例详解
# JavaFX实现UI美观效果代码实例
# 开源
# 子类
# 软肋
# 应用程序
# 都是
# 几个
# 好了
# 迎头赶上
# 也会
# 将会
# 各大
# 这是一个
# 微软
# 可以通过
# 将是
# 软件包
# 不像
# 自定义
# 作为一个
# 更多信息
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
香港服务器部署网站为何提示未备案?
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
如何快速登录WAP自助建站平台?
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
使用C语言编写圣诞表白程序
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
香港服务器建站指南:免备案优势与SEO优化技巧全解析
Swift中swift中的switch 语句
七夕网站制作视频,七夕大促活动怎么报名?
敲碗10年!Mac系列传将迎来「触控与联网」双革新
如何在腾讯云免费申请建站?
如何用腾讯建站主机快速创建免费网站?
Laravel如何使用模型观察者?(Observer代码示例)
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
如何快速搭建FTP站点实现文件共享?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
使用spring连接及操作mongodb3.0实例
网站图片在线制作软件,怎么在图片上做链接?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
javascript中对象的定义、使用以及对象和原型链操作小结
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
在线制作视频网站免费,都有哪些好的动漫网站?
微信公众帐号开发教程之图文消息全攻略
如何在自有机房高效搭建专业网站?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
如何基于PHP生成高效IDC网络公司建站源码?
如何在阿里云ECS服务器部署织梦CMS网站?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何在Ubuntu系统下快速搭建WordPress个人网站?
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
iOS发送验证码倒计时应用
如何为不同团队 ID 动态生成多个独立按钮
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
如何用VPS主机快速搭建个人网站?
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
微信小程序 五星评分(包括半颗星评分)实例代码
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Python函数文档自动校验_规范解析【教程】
上一篇:鲨鱼记账汇率换算使用指南
下一篇:创新策略助力网上商城推广新路径
上一篇:鲨鱼记账汇率换算使用指南
下一篇:创新策略助力网上商城推广新路径

