作者:刻骨铭心2502914183_610 | 来源:互联网 | 2023-10-10 13:16
Swing 是一个为Java设计的GUI工具包,是新一代的图形界面工具。Swing组件的出现是为了解决AWT组件的移植性问题,同时提供更多的企业级应用程序所需要的界面功能,Swing组件中的类主要包含在javax.swing包中,JDK1.2以后的版本都包含Swing类库。
与AWT组件不同,javax.swing包中的大部分组件是没有同位体的组件,所以简称为轻组件。(AWT组件中的类创建组件时,都有一个相应的本地组件在为它工作,称为它的同位体。AWT组件的设计原理是把显示组件和处理组件事件的工作交给同位体,因此AWT组件通常被称作重量组件。)轻组件在设计上把显示组件和处理组件事件的工作交给相应的UI代理来完成,UI代理是用java语言编写的类,系统运行时,这些类被加载到Java的运行环境中,使得组件的外观不依赖于平台,所以可以在所有平台上保持相同的运行效果,对跨平台支持比较出色。因此与重量组件相比,具有更高的性能。(注意:如果Java编程环境或Java运行环境低于JDK1.2版本,就不能使用Swing组件或运行含有Swing组件的程序。)
Swing组件的层次关系图:
从图中可以明显看出,Swing组件都是AWT组件Container类的直接子类和间接子类,Java把由Container的子类或间接子类创建的对象称为一个容器。容器是用来组织其他界面成分和元素的单元,一个应用程序的图形用户界面首先对应于一个复杂的容器,这个容器将再进一步包含它的界面成分和元素,以此类推就构成了一个复杂的图形用户界面系统。图形用户界面中的界面成分或元素又称为组件(Component),组件是一个按照一定规范编写的特殊的类,它有自己特定的功能并可作为一个单独的部分添加到程序中。容器本身也是一个组件,因此可以把一个容器添加到另一个容器中实现容器的嵌套,Java中的Swing组件既可以作为组件也可以作为容器来使用。
javax.swing包中包含近100个类和25个接口,几乎所有的Swing组件都在javax.swing包中,只有JTableHeader和JTextComponent是例外,分别在swing.table和swing.text中。