登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  java教程

Swing概述

时间:2026-08-21 04:58:31 179浏览 收藏

在早期JDK1.0发布时,Sun公司就为GUI开发提供了一套基础类库,这套类库被称为AWT(Abstract Window Toolkit),即抽象窗口工具包。AWT的起初设想就是为了统一实现不同操作系统的图像界面,但问题是,不同操作系统图形库的功能可能不一样,在一个平台上存在的功能在另外一个平台上则可能不存在,为此AWT不得不通过牺牲功能来实现平台无关性。不仅如此,AWT还是一个重量级组件,使用比较麻烦,且设计出的图形界面不够美观功能也非常有限。为此,Sun公司对AWT进行改进,提出了Swing组件,提供了更加丰富的组件和功能,来满足GUI设计的一切需求。

Swing 是一套轻量级组件库,由 Ja va 开发,底层建立在 AWT 之上。这也意味着,跨平台应用不仅能运行在不同环境中,还可以切换各种可插拔的外观风格。再加上代码写起来相对简洁、功能更灵活、组件也更模块化,用它来搭建界面,往往更容易做出体验和视觉都不错的用户界面。正因为如此,和 AWT 相比,实际开发里更常见的选择通常是 Swing 来完成图形用户界面开发。不过有一点不能混淆:Swing 并不是用来取代 AWT 的,而是在原有 AWT 的基础上做了进一步的补充和改进。

Swing组件为实现图形用户界面提供了很多基础类库,多数位于ja va.awt、ja vax.swing包及其子包下,在这些包下提供了实现图形用户界面的主要类。其中在ja va.awt包及其子包下的一些类属于原有AWT组件的底层实现,而在ja vax.swing包及其子包下的一些类则属于Swing后期扩展的,这也从侧面反映出Swing组件对AWT组件的依赖性,接下来通过一张图来描述Swing组件的主要类,如图1所示。

图1 Swing组件继承关系

从图1可以看出,Swing组件的所有类都继承自Container类,然后根据GUI开发的功能扩展了2个主要分支:容器分支(包括Window窗口和Panel面板)和组件分支。其中,容器分支就是为了实现图形用户界面窗口容器而设计的,而组件分支则是为了实现向容器中填充数据、元素以及人机交互组件等功能。

在 Swing 的组件体系里,顶级容器里最常见的,主要就是 JApplet、JFrame 和 JDialog;而在常用组件这一层,AbstractButton 类及其子类通常负责定义按钮的那些通用行为,JTextComponent 类及其子类则主要用来定义文本内容的编辑区域。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>