Java桌面编程(GUI)详细

Java图形界面编程

  1. java中AWT和Swing的区别与联系
  2. Swing和JavaFX如何选择
  3. 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如何选择

  1. 概述

    ​ JavaFX比较新,Oracle2008年才推出的,功能比较强大,并且持续更新。swing是比较老的GUI,做出东西也比较丑。但是大多数老师讲课还是讲awt,和swing,大多数人还不能一下子舍弃。并且Oracle 已经明确说明不在更新swing。 而现在JavaFX直接内建在JRE和JDK里(Java8),不再区分版本,也可以看出Oracle比较重视。

  2. JavaFX与Swing相比的优点

    • 一:JavaFX设计思路比较好, 界面和控制逻辑分开, 类似于网页,方便程序员和美术一起协作. 也方便修改.
    1. FXML文件类似于html ,里面放的是 控件和布局
    2. css 文件 就几乎完全一样了, 里面存放的样式 ,用于修饰 控件的外观. 比如换肤功能,只需要切换一下css文件即可
    3. Controller.java文件, 类似于JavaScript ,主要用于行为的控制, 比如点击按钮后的响应等
    • 二:JavaFX组件更丰富 .比如DatePicker,TreeTableView,Pagination,HTMLEditor,ProgressIndicator 等等…特别是WebView 支持html5
    • 三: JavaFX 可以很简单的实现3D效果, 动画, 特效等
    • 四: JavaFX 支持属性的绑定, 可以更方便的把事件和界面联系在一起,比如 滑块的值,和正方形的边长进行绑定,这样拉动滑块,就可以自动改变正方形的变长, 非常的简洁
    • 五: JavaFX 有原生图表,并且比较美观
    • 六: JavaFX 对多媒体提供了支持, 播放音乐,视频 也是很简单的
  3. JavaFX与Swing相比的缺点

    • Swing资料非常丰富, 而JavaFX资料相对较少。
    • 有待补充

三、Swing和JavaFX便捷开发工具

  1. Swing开发推荐工具

    • 推荐使用Eclipse开发工具然后安装WindowBuildier插件
    • 文章:https://blog.csdn.net/qq_41998273/article/details/87186197
  2. JavaFX开发推荐工具

    • 推荐使用IDEA进行开发,IDEA有自带的 SceneBuilder 可以很便捷的进行开发
    • 个人推荐单独下载一个 SceneBuilder 软件,比IDEA自带的用起来更加方便快捷;文章:https://blog.csdn.net/qq_41998273/article/details/102397178
    • 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
    • 我用JavaFX开发的软件:https://blog.csdn.net/qq_41998273/article/details/102815499

你可能感兴趣的:(GUI,Java桌面编程,JavaFX,Swing)