跟本地系统的相关性。。JDK写程序 所有功能都是靠虚拟机去操作本地操作系统 比如window下。。就是JDK用windows API实现你功能
而awt包中很多组件是组件自身去调用本地操作系统代码
swing包中的组件 采用的是调用本地虚拟机方法,由虚拟机再调用本地操作系统代码。。
意思就是中间多了一层,这样就加强了swing包的移植性,与本地关系不那强了
awt
是abstract
window
toolkit
(抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。当我们利用
awt
来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。
swing
是在awt的基础上构建的一套新的图形界面系统,它提供了awt
所能够提供的所有功能,并且用纯粹的java代码对awt
的功能进行了大幅度的扩充。由于
swing
控件是用100%的java代码来实现的,因此在一个平台上设计的树形控件可以在其他平台上使用。
AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT由Java中的java.awt包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类又被称为组件(components)。
Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。
从版本上看,awt出现在JDK1.0及以后版本。swing出现在JDK2.0及以后版本。
从功能上看,虽然都是设计GUI的类库,但是swing的功能更加强大。例如,设计一个按钮,这个按钮上显示一幅图片,在awt中就很费事,但是在swing中就很方便。