黑马程序员技术交流社区

标题: awt和swing的问题 [打印本页]

作者: mulua    时间: 2013-6-20 17:37
标题: awt和swing的问题
为什么awt是重量级的而swing是轻量级的呢???
作者: msileandroid    时间: 2013-6-20 18:08
java.Awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件
其实所谓的重轻就是对本地操作系统的依赖性;Awt依赖性较强,好比一个在windows下用awt做好的界面,在其他系统下界面可能不一样{:3_68:}
作者: 007诸葛亮    时间: 2013-6-20 19:17

awt和Swing是java设计GUI用户界面的基础,与awt的重量级不同,Swing中的大部分是轻量级组件,Swing几乎无所不能,不但有各式各样的组件,而且更为美观易用。所以一开始使用awt的程序员很快就转向使用Swing了,但是因为Swing是架构在awt之上的,没有awt就没有Swing,所以说awt还是有用的。
1,AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。
2,SWING()Swing 是一个为Java设计的GUI工具包。 Swing 是JAVA基础类
的一部分。 Swing 包括了图形用户界面 (GUI) 器件 如:文本框,按钮,分隔窗格和表。
一句话说明,AWT几乎是重量级组件,SWING几乎是轻量级组件。
  轻量组件首次出现在AWT1.1版本中。AWT最初只包括与本地对等组件相关联的重量组件,这些组件在它们自己的本地不透明窗口中绘制。
  相反,轻量组件没有本地对等组件,而且在它们的重量容器的窗口中绘制。
  由于轻量组件不在本地不透明的窗口中绘制,因此,它们可以有透明的背景。透明的背景使显示的轻量组件可以是非矩形的,虽然所有组件 (重量的或轻量的)都基于一个矩形边框。
  Swing组件几乎都是轻量组件,那些顶层容器:窗体、小应用程序、窗口和对话框除外。
  因为轻量组件是在其容器的窗口中绘制的,而不是在自己的窗口中绘制的,所以轻量组件最终必须包含在一个重量容器中。因此,Swing的窗体、小应用程序、窗口和对话框都必须是重量组件,以便提供一个可以在其中绘制Swing轻量组件的窗口。
希望对你有解惑之用!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2