swing vs awt 的不同

hk_c 2002-02-22 05:02:59
swing vs awt 的不同???
...全文
104 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zach_ZhouY 2010-06-23
  • 打赏
  • 举报
回复
学习学习
智慧的星球 2002-02-28
  • 打赏
  • 举报
回复
其实,尽管swing的功能〉〉awt,但是如果你的工程不是要求极高的视觉冲击,新奇可爱,你完全可以不用swing,如果你的applet用swing组件,那么就要求你的用户浏览器要加装java-plugin,而且你的htm叶面文件也要比以前复杂;对于普通应用程序来说,swing组件除了外观清新外,整个组件所涉及的范围也比awt要广,支持ui,她的applicationg framwork 也比较成熟;从命名来说,几乎把awt类名的前边加一个J,就可以变为swing了,hehe ,不过你的import 语句也要记得改改呀!!
xiaoyaoyu 2002-02-28
  • 打赏
  • 举报
回复
study
gr_czq 2002-02-28
  • 打赏
  • 举报
回复
用SWING设计的比AWT有更高的性能,且不同的平台上外观是相同的(指轻量组件)
qiangzi 2002-02-27
  • 打赏
  • 举报
回复
huang_brid(如风--风之舞---水风轻吻)所说的好象有些道理!!
panq 2002-02-27
  • 打赏
  • 举报
回复
重量级和轻量级指的是什么?


应该是资源使用。
Ice1 2002-02-27
  • 打赏
  • 举报
回复
重量级java控件和轻量级java控件有什么区别?重量级和轻量级指的是什么?
freejacky 2002-02-27
  • 打赏
  • 举报
回复
我只知道awt是重量级java控件,swing是轻量级java控件
swing是由awt继承派生出来的,应用起来更灵活、简单!
xmvigour 2002-02-27
  • 打赏
  • 举报
回复
阅~
liuyichuanshu 2002-02-27
  • 打赏
  • 举报
回复
SWING的确是后者居上,但是没有了AWT的基础,就没有SWING的效果!虽然长江后浪推前浪,但是前浪不见得就死在沙滩上。因该是继承的THINKING!
一人前端 2002-02-25
  • 打赏
  • 举报
回复
swing是AWT的基础,当然,青出于蓝而胜于蓝!
wangweitao 2002-02-25
  • 打赏
  • 举报
回复
我认为swing要比awt好一些,现在我们的知识还不是很多,以后随着科技的发展,这方面已经不用多说了,早晚是swing的天下,再说swing里面有很多的好东西,大家好学吧。
elementcopy 2002-02-25
  • 打赏
  • 举报
回复
swing在JDK1.2
hello_wyq 2002-02-24
  • 打赏
  • 举报
回复
从资源类型上说,amoo(阿木)说的对
从软件结构说楼上说的有些道理。
可以说没有awt就没有swing
adamzhang 2002-02-24
  • 打赏
  • 举报
回复
笼统的说一句呢。就是swing很多组件采用了数据和显示分开的结构。
比如Jtable类。就有个JtableModel类。Jlist等也是这样的。
在使用上来讲。没什么很大的区别。但swing里面在编程的往Jframe里面添加组件的时候,需要得到frame的容器层。在容器层添加组件。这个和awt不一样。
huang_brid 2002-02-24
  • 打赏
  • 举报
回复
既生 AWT,何生 Swing?
在 Java 技术刚出现的初期,大家最感兴趣的 Java API 无疑地就是 AWT。一方面因为 JDK 1.0 时只有 AWT 称得上是一组完整的 application framework,其它 Java API 都比较偏向个别的 class,二方面是因为当时大家受尽了 MFC 的苦,希望能有一个比较好的替代品。

MFC 的兴盛期已过,目前余孽尚存,我很乐见这种不良的 API 逐渐雕零。Bruce Eckel 说得好:「MFC 是我经验过最糟糕的东西(MFC is the worst thing that I've experienced)」。少说重话的 Bruce Eckel 批评 MFC 其来有自,因为 Bruce Eckel 是对象导向程序设计的倡导者,而 MFC 正是对象导向设计失败的绝佳范例。相较于 MFC 的不良设计,AWT 在对象导向方面就好很多了,但是因为两者都采用 ripple 形式的 event model,所以两者在这方面很类似。在 JDK 1.1 版以后,整个 Java(包括 AWT)的 event model 改用较好的 delegation event model。

JDK 1.2 之后,Java 有了另一组 GUI 的 API,叫做 Swing。因为 Swing 是 lightweight 的 API,所以无所不能,不但有各式各样先进的组件,而且连组件风格都可抽换。Swing 出现之后,大家很快地就不太使用 AWT 了。我发现 lightweight 组件近年来大行其道,跨 Windows/unix/Linux 平台的 Qt 也是 lightweight 组件的套件。

不要以为 Swing 是用来取代 AWT 的,其实 Swing 是架构在 AWT 之上做出来的(Swing 有四个 heavyweight 组件),没有 AWT,也就不会有 Swing。Swing 的出现只是减少程序员直接使用 AWT 的机会,而不会让 AWT 消失。

不管你选用 AWT 或 Swing 来开发你的 GUI,最好不要同时使用两者,因为:

AWT 或 Swing 的视觉风格差异很大,混用两者感觉不协调。
Swing 的组件大部分都是 lightweight,而 AWT 的组件一律是 heavyweight,两者混在一起可能会造成 Z-Order 的错乱。(请看「探究 Z-Order」一文)
混用 AWT 和 Swing 很可能会造成 Swing 的最佳化无用武之地,结果速度比只用 AWT 或只用 Swing 都来得慢。
虽然 Swing 的组件有诸多优点,但是它有一项致命的缺点 ...「慢」。许多人开发出来的 Swing 程序执行速度很慢,但是问题不见得全都出在 Swing 上面,有可能在于程序员的程序经验不足,思虑欠周所致。遇到像这样的情况,我会建议他们把程序的某些地方改写,通常效能会有明显地改进。如果这样还是不够快,那么最后一招就是把 GUI 由 Swing 改成 AWT。

最近 AWT 又变得稍微重要起来了。IA(信息家电)产品热潮逐渐兴起,许多 IA 产品上会有 JRE,能够执行 Java 程序,例如 WinCE、PalmOS、Symbian EPOC 这三大 PDA 的 OS 都有 JRE。比起桌上型计算机,掌上型的 IA 不但内存有限、CPU 不够快、屏幕小且色彩少。这类 IA 上面的 Java 程序一定要用 AWT 来设计 GUI,因为这类装置的 JRE 根本不支持 Swing 这样耗费资源的庞然大物。

总而言之,如果你:

需要快速的 GUI,或者
需要在 IA 上开发 Java 程序
那么,你应该多花一点时间把 AWT 学好。否则,你应该直接去学 Swing,会比较实际些。
vive 2002-02-24
  • 打赏
  • 举报
回复
awt是java标准库,到处都支持的
swing是扩充库,常常要额外下载的
要画出来效果好,就用swing
要兼容性好,或者不是极其注重外观,就用awt省事
Eric_yu 2002-02-23
  • 打赏
  • 举报
回复
可以不用swing吗?
amoo 2002-02-23
  • 打赏
  • 举报
回复
一个是轻型窗口工具包(SWING)
另一个是重型的(AWT)
xiaobi_liang 2002-02-22
  • 打赏
  • 举报
回复
Swing 更优秀
加载更多回复(2)

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧