Swing 是一个为Java设计的GUI工具包,是新一代的图形界面工具。Swing组件的出现是为了解决AWT组件的移植性问题,同时提供更多的企业级应用程序所需要的界面功能,Swing组件中的类主要包含在javax.swing包中,JDK1.2以后的版本都包含Swing类库。
Swing组件的层次关系图:
从图中可以明显看出,Swing组件都是AWT组件Container类的直接子类和间接子类,Java把由Container的子类或间接子类创建的对象称为一个容器。容器是用来组织其他界面成分和元素的单元,一个应用程序的图形用户界面首先对应于一个复杂的容器,这个容器将再进一步包含它的界面成分和元素,以此类推就构成了一个复杂的图形用户界面系统。图形用户界面中的界面成分或元素又称为组件(Component),组件是一个按照一定规范编写的特殊的类,它有自己特定的功能并可作为一个单独的部分添加到程序中。容器本身也是一个组件,因此可以把一个容器添加到另一个容器中实现容器的嵌套,Java中的Swing组件既可以作为组件也可以作为容器来使用。
javax.swing包中包含近100个类和25个接口,几乎所有的Swing组件都在javax.swing包中,只有JTableHeader和JTextComponent是例外,分别在swing.table和swing.text中。