• AWT和Swing


    AWT和Swing都是java中的包。

    AWT(Abstract Window Toolkit):抽象窗口工具包,早期编写图形界面应用程序的包。

    Swing :为解决 AWT 存在的问题而新开发的图形界面包。Swing是对AWT的改良和扩展。    

    AWT和Swing的实现原理不同:
           AWT的图形函数与操作系统提供的图形函数有着一一对应的关系。也就是说,当我们利用 AWT构件图形用户界面的时候,实际上是在利用操作系统的图形库。
           不同的操作系统其图形库的功能可能不一样,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java语言所宣称的"一次编译,到处运行"的概念,AWT不得不通过牺牲功能来实现平台无关性。因此,AWT 的图形功能是各操作系统图形功能的“交集”。
            因为AWT是依靠本地方法来实现功能的,所以AWT控件称为“重量级控件”。 

           而Swing ,不仅提供了AWT 的所有功能,还用纯粹的Java代码对AWT的功能进行了大幅度的扩充。
           例如:并不是所有的操作系统都提供了对树形控件的支持, Swing则利用了AWT中所提供的基本作图方法模拟了一个树形控件。
           由于 Swing是用纯粹的Java代码来实现的,因此Swing控件在各平台通用。
           因为Swing不使用本地方法,故Swing控件称为“轻量级控件”。 

           AWT和Swing之间的区别:
           1)AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT的Java程序,其运行速度比较慢。
           2)AWT的控件在不同的平台可能表现不同,而Swing在所有平台表现一致。

           在实际应用中,应该使用AWT还是Swing取决于应用程序所部署的平台类型。例如:
           1)对于一个嵌入式应用,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。在这种矛盾的情况下,简单而高效的AWT当然成了嵌入式Java的第一选择。
           2)在普通的基于PC或者是工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素。所以在标准版的Java中则提倡使用Swing, 也就是通过牺牲速度来实现应用程序的功能。

  • 相关阅读:
    1026 Table Tennis (30)
    1029 Median
    1025 PAT Ranking (25)
    1017 Queueing at Bank (25)
    1014 Waiting in Line (30)
    1057 Stack (30)
    1010 Radix (25)
    1008 Elevator (20)
    字母大小写转换
    Nmap的基础知识
  • 原文地址:https://www.cnblogs.com/CandiceW/p/5447711.html
Copyright © 2020-2023  润新知