《零基础学Java》
Swing主要用于GUI (Graphical User Interface) 程序,包括窗口、菜单、按钮、图形界面元素(比如:QQ)。这些类分别位于 java.awt 和 javax.swing 包中(简称AWT、Swing)。其中 AWT 是抽象窗口工具包,它是Java平台独立的窗口系统、图形和用户界面组件的工具包,但是其组件类型有限;Swing是AWT组件的增强组件,它提供了更加丰富的组件和功能。
AWT组件来自 java.awt包,当含有AWT组件的Java应用在不同平台运行时,每个平台的GUI组件显示效果都有所不同,但在不同平台使用Swing开发的应用程序时,就可以实现统一的GUI组件风格(因为Swing组件允许开发者在跨平台时指定统一的风格、外观)。
Swing组件是完全由Java语言编写的,因此Swing组件可以运行在任何平台(Java是不依赖于操作系统的语言),通常Swing组件被称为“轻量级组件”;相反,依赖于本地平台的组件被称为“重量级组件”(比如:AWT组件)。
在Swing包的层次结构及关系中比较重要的类是Component类(组件类)、Container(容器类)、JComponent类(Swing组件父类)。
Swing包的层次结构关系图
【Swing】
文章图片
在Swing组件中,多数的GUI组件都是Component类的直接子类或间接子类,而JComponent类是Swing组件各种特性(包括:设定组件边界、GUI组件自动滚动 等)的存放位置。Java关于窗口组件的编写,都与组件(Component类)以及容器(Container类)的概念相关联。
文章图片
文章图片
推荐阅读