浅谈Swing和AWT构件

Java基本类

Java基本类 (JFC),由一些软件包组成。这些软件包主要包括下面一些应用程序接口(API):
◆抽象窗口工具集(AWT)(1.1及以上版本)。
◆Swing构件。
◆Java2D应用程序接口(2D API)。
◆兼容程序接口。
上面列出的这些应用程序接口可能会出现在多个软件包中。例如:2D API在Java.awt和 Java.awt.image软件包中都存在,虽然像Java.awt.geom等一些特殊的软件包也支持2D API,但 是大量的2D API类都存在于Java.awt软件包中。

AWT(1.1及以上版本)是JFC的核心。AWT为JFC的构成提供了以下的基本结构:
◆代理事件模型。
◆轻量构件。
◆剪贴板和数据传输。
◆打印和无鼠标操作。

抽象窗口工具集

在开发applet和图形应用程序时,一般需要用到AWT,AWT是免费Java开发工具包(JDK)的一部分。 AWT的作用是给用户提供基本的界面构件,例如按钮、列表、菜单、文本域等等。AMT构件主要是用来建立图形用户界面的独立平台。此外,AWT还提供事件处理结构、支持剪贴板、数据传输和图像操作。随着2D API的出现,AWT还包括提供高级字体操作、打印、地理数据获取和输入方法等功能的软件包。AWT的初始版本是基于在简单用户界面中开发小applet 程序而设计的,与之相比,当前的AWT做了很大的改进,它提供事件模型重新设计、剪贴板和数据传输支持以及打印和无鼠标操作等功能。从而与Parc Place的VisualWork或Borland公司的Object Windows Library(OWL)等企业级用户界面具有更多的可比性。

同位体和平台独立

随着Applet程序和图形应用程序接口的发展,AWT提供了一系列的通用类,这些通用类在引用时不需要考虑特定的窗口平台,同位体(Peer)就属于这种AWT类集。同位体是一种本地图形用户接口(GUI)构件,由AWT类管理。同位体的工作方法和它们对程序开发的影响常
常让人混淆。

AWT构件中,包含有对其同位体的大量实用操作。例如,如果你使用AWT创建一个menu类的实例,那么当Java运行时系统将创建一个菜单同位体的实例,而由创建的同位体实际执行菜单的显示和管理。在创建菜单实例中,Solaris JDK将产生一个Motif菜单同位体;Windows 95将产生一个Windows 95菜单同位体;Macintosh JDK将产生一个Macintosh菜单同位体等等。

一个Java程序创建并显示AWT构件,AWT构件创建并显示本地构件(同位体)。AWT开发组决定使用同位体方法,这一方法使得交叉平台窗口工具开发变得极为迅速。使用同位体可以避免重新实现本地窗口构件中已包含的实用工具,而且,使用同位体还能使applet和应用程序保留在本地系统中,这是因为同位体实质上是由本地构件组成的,而AWT类仅仅是同位体外围的包装与操作工具。

虽然在使用AWT时,很少需要直接处理同位体,但它们的存在却影响其操作结果。例如,如果没有同位体,则某些java.awt.Component方法不会象我们所预期的那样进行工作。使用同位体方法可以在记录时间内实现 GUI工具构件。然而,使用同位体也有很多的缺点,同位体设计基础存在缺陷并且不能缩放。

轻量构件