Swing框架概述

Swing是JDK自带的图形界面库,在很多年前Swing曾经广泛用于企业级系统客户端,不过如今在企业级管理系统领域,客户端-服务器模式(C/S)已被浏览器-服务器模式(B/S)端取代。如今,仅有部分专业领域软件使用Swing开发,如Eclipse、Matlab(GUI部分)等。

Swing应用领域

那么学习Swing有什么用呢?网上很多人说学习Swing没用,直接学某Web框架即可,我想说那些人根本不热爱编程,也不喜欢思考。Swing尽管使用场景比较少了,但是它依然是一个设计良好、有很大学习价值的框架。编程是用来解决问题的,先不提操作系统、编译原理这些理论性强的东西,就我们常用的应用软件来说,除了Web应用还有桌面应用、游戏等等。我们学习任何框架,除了满足业务需求外,最重要的是学习这个框架设计的思想,这种思想是可以用到任何领域、任何语言的。

除了Swing外,Java领域还有一个更现代的GUI框架JavaFX,将在其他章节中介绍。

AWT和Swing的关系

JDK中实际上还有一个比Swing更古老的AWT库,AWT是基于窗口对等体实现的GUI界面,因此有不同平台下表现不同的缺点,而且为了控件的兼容性,不得不保持控件在一个所有平台的最大公约数上,就这很影响跨平台实现。

由于AWT的诸多缺点Swing产生了,Swing不使用窗口对等体而是采用重新绘制,因此不依赖于特定平台的窗体控件,具有良好的跨平台性。

这里要注意一个历史遗留问题,由于Swing是在AWT之上开发的,例如Swing的JFrame继承了AWT的Frame。使用Swing的过程中,也同样要使用到AWT包的API。

Swing和AWT的继承层次

下图展示了Swing中关键组件的继承层次。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap