从程序员的角度来看,下面窗口是由多个部分组成的:
由上图可以看出,任何窗口都可被分解成一个空的容器,容器中盛满了大量的基本组件,通过设置基本组件的大小、位置等属性,就可以将该空的容器和基本组件组成一个整体的窗口。
AWT 主要提供了如下两种主要的容器类型:
Windows:可独立存在的顶级窗口
Panel:可作为容器容纳其他组件,但不能独立存在,必须被添加到其他容器中(如 Windows、Panel 或者 Applet 等)
AWT 容器的继承关系如下图所示:
其中粗黑线圈出的容器是 AWT 编程中常用的组件。Frame 代表常见的窗口,它是 Windows 类的子类,具有如下几个特点:
下面例子通过 Frame 创建了一个窗口。
运行上面程序,会看到如下图所示简单窗口:
Panel 是 AWT 中另一个典型的容器,它代表不能独立存在、必须放在其它容器中的容器。Panel 外在表现为一个矩形区域,该区域内可盛装其他组件。Panel 容器存在的意义在于为其他组件提供空间。
Panel 容器具有如下几个特点:
下面的例子程序使用 Panel 作为容器来盛装一个文本框和一个按钮,并将该 Panel 对象添加到 Frame 对象中。
编译、运行上面程序,会看到下图所示窗口:
由上图可以看出,使用 AWT 创建窗口很容易,程序只需要通过 Frame 创建,然后再创建一些 AWT 组件,把这些组件添加到 Frame 创建的窗口即可。
ScrollPane 是一个带滚动条的容器,它也不能独立存在,必须被添加到其他容器中。
ScrollPane 容器具有以下特点:
下面例子使用 ScrollPane 容器来代替 Panel 容器:
运行上面程序,看到如下窗口:
该窗口有水平、垂直滚动条。