一、Swing包概述
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包层级结构
JComponent是Swing 轻型组件的根类,JComponent是继承AWT容器类java.awt.Container,所以Swing组件都是容器。
JComponent声明如下:
public abstract class JComponent entends Container implements Serializable
{
public void setBorder(Border border)
}
三、Swing顶层容器
JFrame框架和JDialog对话框是Swing顶层容器,但是他们是java.awt.Window的子类,而不是javax.swing.JComponent的子类,所以不能直接将Swing放到这两个重型组件中,而是加到顶层容器包含的内容窗格(content) 的容器中。
- 内容窗格 public Container getContentPane() 返回JFrame 和JDialog内容
- 窗口关闭 public void setDefaultCloseOperation(int operation)