Java图形界面编程
- java中AWT和Swing的区别与联系
- Swing和JavaFX如何选择
- Swing和JavaFX便捷开发工具
一、AWT和Swing的区别和联系
AWT和Swing的联系
- AWT和Swing都是java中的包。
- awt是抽象组件窗口工具包,是Java最早的用于编写图形应用程序的开发包。
- Swing是为了补充awt的一些功能性的缺失问题而开发的包,以awt为基础的。Swing是对AWT的改良和扩展。
AWT和Swing的区别
- AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT的Java程序,其运行速度比较慢。
- AWT的控件在不同的平台可能表现不同,而Swing在所有平台表现一致。
总结
由于实现的不同,awt是机遇本地方法的C/C++程序,运行速度比较快,消耗资源少;Swing是基于awt的Java程序,所以运行速度慢。对于嵌入式应用,往往采用AWT;通常在标准的Java应用中,使用Swing牺牲运行速度换取开发效率和功能。
二、Swing和JavaFX如何选择
概述
JavaFX比较新,Oracle2008年才推出的,功能比较强大,并且持续更新。swing是比较老的GUI,做出东西也比较丑。但是大多数老师讲课还是讲awt,和swing,大多数人还不能一下子舍弃。并且Oracle 已经明确说明不在更新swing。 而现在JavaFX直接内建在JRE和JDK里(Java8),不再区分版本,也可以看出Oracle比较重视。
JavaFX与Swing相比的优点
- 一:JavaFX设计思路比较好, 界面和控制逻辑分开, 类似于网页,方便程序员和美术一起协作. 也方便修改.
- FXML文件类似于html ,里面放的是 控件和布局
- css 文件 就几乎完全一样了, 里面存放的样式 ,用于修饰 控件的外观. 比如换肤功能,只需要切换一下css文件即可
- Controller.java文件, 类似于JavaScript ,主要用于行为的控制, 比如点击按钮后的响应等
- 二:JavaFX组件更丰富 .比如DatePicker,TreeTableView,Pagination,HTMLEditor,ProgressIndicator 等等…特别是WebView 支持html5
- 三: JavaFX 可以很简单的实现3D效果, 动画, 特效等
- 四: JavaFX 支持属性的绑定, 可以更方便的把事件和界面联系在一起,比如 滑块的值,和正方形的边长进行绑定,这样拉动滑块,就可以自动改变正方形的变长, 非常的简洁
- 五: JavaFX 有原生图表,并且比较美观
- 六: JavaFX 对多媒体提供了支持, 播放音乐,视频 也是很简单的
JavaFX与Swing相比的缺点
- Swing资料非常丰富, 而JavaFX资料相对较少。
- 有待补充
三、Swing和JavaFX便捷开发工具
Swing开发推荐工具
- 推荐使用Eclipse开发工具然后安装WindowBuildier插件
- 文章:
JavaFX开发推荐工具
- 推荐使用IDEA进行开发,IDEA有自带的 SceneBuilder 可以很便捷的进行开发
- 个人推荐单独下载一个 SceneBuilder 软件,比IDEA自带的用起来更加方便快捷;文章:
- JavaFX开发资料:
UI美化
JFoenix: http://github.com/jfoenixadmin/JFoenix
BootstrapFX: http://github.com/aalmiray/bootstrapfx
视频文档
中文文档:http://www.javafxchina.net/blog/docs/
宝藏网站:https://www.javafxdeveloper.com/home