- AWT大量地引入了Windows函数,所以经常被称为重量级组件。在Java2中提供了轻量级的图形界面组件——Swing,Swing使用Java语言实现,是以AWT平台为基础构建起来的新组件,直接使用Swing可以更加轻松地构建用户界面。
- 在Java中所有的Swing都保存在javax.swing包中,从包的名称中(javax)可以清楚地发现此包是一个扩展包,所有的组件是从JComponent扩展出来的。此类实际上是java.awt.Component的子类,如下所示:
- JComponent类几乎是所有Swing组件的公共超类。就像Component类是所有的AWT组件的父类一样,所以JComponent的所有子类也都继承了本类的全部公共操作,继承关系如下:
- 从上图的各个组件类的定义来看,所有的Swing组件只是比AWT组件前多增加了一个字母“J”而已。
- 在Swing中依然存在容器的概念,所有的容器类都是继承自AWT组件包。例如,在Swing中容器使用JFrame、JWindow、JPanel等,这些分别是Frame、Window、Panel的子类。在Swing中依然可以使用AWT中提供的各个布局管理器,为组件进行统一的布局管理。
- 虽然Swing提供的组件可以方便地开发Java应用程序,但是Swing并不能取代AWT,在开发Swing程序时通常要借助于AWT的一些对象来共同完成应用程序的设计。