而它的后继者Swing的产生历史是这样的:1996年、网景创建了个称之为IFC(Internet Foundation C1asses)的GUI类,它采用了—个与AWT截然不同的方法。按钮、菜单等等诸如此类的用户界面元素都被绘入空白窗口。也就是说用户界面元素是通过纯java代码绘制出来的,而不是采用本地平台上的对等实体来进行处理。当然,完整的JFC并不仅仅只有一个Swing GUI工具包,它还包括一个访问API,一个2D API,一个拖放API.Swing并没有替代AWt,而只是为我们提供了功能更加强大的用户界面组件。它使用的还是1.1 的事件处理模式。也由于Swing是自己绘制用户界面元素,因此效率肯定要比AWT低一些,但对于现在的机器来说,这点是可以不予考虑的,而且,也是考虑到效率的原因,因此Swing是轻量级的组件。相反,Swing的优点让人无法抗拒的:1)它提供了更加丰富,方便的用户界面元素。2)它通过自己绘制用户界面元素,不依赖于本地平台,因此减少了与平台有关的错误,这些错误在平台移植时经常出现,为了实现跨平台移植,Swing全部是采用java写的。3)自己绘制的用户界面元素给用户一致的用户体验。但这一点也带来了一个缺点,使得用户界面元素可能和本地平台上自带的控件不一致,使用户迷惑。Swing还提供一种更前卫的,被称为"pluggable look and feel(可插接式外观)"的功能,也就是说用户界面的外观可以根据操作系统或用户的习惯动态地改变。你甚至可以自己发明一套外观(当然是很难的)。而sun公司为了解决这个毛病,开发了一个与平台无关的外观“Metal”。