首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Swing和AWT,为什么一个被认为是轻量级而另一个是重量级?

Swing和AWT都是Java编程语言中的GUI框架,用于构建图形用户界面(GUI)应用程序。然而,它们在设计和实现上有一些重要的区别,这导致了它们在特定用例中的性能差异。

Swing被认为是轻量级框架,因为它使用Java本机GUI组件,这些组件是Java虚拟机(JVM)的一部分。因此,在运行时,Swing需要较少的类加载,并且它的性能通常比AWT更好。此外,Swing具有更好的可移植性,因为它可以在不同的操作系统上运行,而不仅仅是Java支持的操作系统。

AWT框架被认为是重量级框架,因为它使用Java虚拟机的远程过程调用(RPC)机制来创建GUI组件。这种方法需要将每个组件加载到JVM中,这会导致更多的类加载和内存使用。此外,AWT的GUI组件通常比Swing的组件更复杂,需要更多的代码来创建和维护。

在考虑使用Swing还是AWT时,需要根据应用程序的具体需求来选择。如果应用程序需要更好的性能和对不同操作系统的更好的可移植性,那么Swing可能是更好的选择。如果应用程序需要创建复杂的GUI组件,那么AWT可能更适合。

以下是一些腾讯云的产品介绍链接地址:

  1. 腾讯云服务器:https://cloud.tencent.com/product/cvm
  2. 腾讯云数据库:https://cloud.tencent.com/product/mysql
  3. 腾讯云对象存储:https://cloud.tencent.com/product/cos
  4. 腾讯云CDN:https://cloud.tencent.com/product/cdn
  5. 腾讯云COS对象存储:https://cloud.tencent.com/product/cos
  6. 腾讯云人脸识别:https://cloud.tencent.com/product/face
  7. 腾讯云语音识别:https://cloud.tencent.com/product/speech-recognition
  8. 腾讯云机器学习:https://cloud.tencent.com/product/ml
  9. 腾讯云API网关:https://cloud.tencent.com/product/mgw
  10. 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos

这些产品涵盖了云计算、大数据、人工智能、区块链等多个领域,可满足各种应用场景的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

双缓冲原理在AwtSwing中实现消除闪烁方法总结

二、Swing界面编程        随着Java的发展,AWT已经渐渐淘汰,它已经不能适应发展的需要,不能满足开发功能强大的用户界面的需要。...2)、与AWT的区别 最大的区别在于Swing组件的实现与本地实现无关。Swing组件比AWT组件具有更多的功能。...例如在Swing中添加了按钮组件标签组件,通过继承来更改Swing组件的行为外观,访问技术等。 ---- 在游戏中相应的实现即主要窗体用FrameJFrame来构建。...1.Frame:重量级组件 2.JFrame:轻量级组件 出现问题: ①.窗体调用repaint()方法时闪烁严重 ②.窗体设置双缓冲重绘后,DrawImage()进行缩放图片时会失真,Graphics2D...repaint()方法在重量级组件的时候会调用update方法,在轻量级组件的时候会调用paint方法 即JFrame根本不会去调用update()方法!

2.2K20

Java图形用户界面程序设计所需要使用的工具

这些所谓的“工具”抽象并归类为 java.awt 包中的类接口,主要包括用户界面组件类(包括容器类、组件类)、布局管理器、图形图像工具(包括形状、颜色字体类)等。...根据 AWT 对平台的这种依赖性,所提供的组件被称作“重量级组件”。...Swing 组件大多以 JComponent 类作为父类(如图4-13所示);JComponent 类是一个抽象类,定义了所有子类组件的一般成员方法; JComponent 类继承自 Container...根据图4-13 很容易发现 Swing AWT有紧密的关系:其一,Swing的类都是AWT 的 Container 类的直接子类或者间接子类;其二,Swing 的类名很多是在 AWT 的某个类名前加上一个字母...独立于本地平台的Swing组件被称为轻量级组件;依赖于本地平台的 AWT 组件被称为重量级组件。

20710
  • 曾经是“杀手级”桌面语言,Java桌面开发为何走向衰落?

    GUI 工具包:AWTSwing 与 SWT 我刚开始使用 Java 那会,它的初始 GUI 工具包 AWT(Abstract Windowing Toolkit) 已经有点过时了,倒是新的“轻量级...简单来讲,AWT 属于“重量级”工具包,提供的是 用于处理本机小部件的 API。重量级 UI 库的问题在于难以维护,而且受到底层平台可用组件的限制。...既然 Sun 公司的聪明人都觉得轻量化才是正确的道路,为什么 IBM 这边拿出的是重量级工具包呢? 而且我对 SWT 的兴奋也没持续多久。...倒是 Swing,虽然速度还是更慢,但一直随着新版本的发布不断改善。根据 AWTSwing 相关书籍、论坛博文的数量,我估计 Swing 社区的规模比 SWT 大得多。...据我所知,2000 年初那会的跨平台 Java GUI 开发市场就是由 AWTSwing SWT 这三家主导。Java FX 直到 2007 年才出现。

    1.6K20

    JDK7新特性概览JSR292:支持动态类型语言(InvokeDynamic)G1 垃圾回收器(Garbage-First Collector)JSR334:小的语言改进(Project Coin)核

    Nimbus 起初作为一个开源的项目,它使用 Java2D 矢量绘图不是点阵图片来渲染图形界面控件,因而使得图形界面控件可以精确地任意缩放。这个特性特别符合现代富客户端图形控件的发展趋势。...JLayer 通常情况下,自定义图形控件的绘制需要覆写控件的绘图方法,但是很多情况下这不是一个好办法。于是,JLayer 类应运而生,它可以装饰在已有的 Swing 组件上。...混合重量级轻量级组件 在 Java 图形控件中有两类,重量级(heavyweight)轻量级(lightweight)控件。...轻量级控件没有对应的操作系统本地控件,比如大多数 Swing 控件:JLabel JButton。重量级控件则相反,对应于本地控件,比如 AWT 的 Button Label。...历史上,在一个窗体里混合使用重量级轻量级控件存在问题,特别是它们互相重叠的时候。现在,Java 7 中混合使用变得比较方便。

    2.3K100

    2023 年你必须具备的 12 项 Java 开发人员技能...

    它有两种类型,即编译时多态性运行时多态性。 抽象——指的是表现基本特征不包括背景细节的行为。 封装——即将数据方法包装成一个单元。例如Java类。...AWT – Java AWT(抽象窗口工具包)是一个用于在 java 中开发 GUI 或基于窗口的应用程序的 API。AWT重量级的,即它的组件正在使用操作系统的资源。爪哇。...Swing – Java Swing教程是 Java 基础类 (JFC) 的一部分,用于创建基于窗口的应用程序。它建立在 AWT(抽象窗口工具包)API 之上,完全用 java 编写。...与 AWT 不同,Java Swing 提供独立于平台的轻量级组件。...多线程是轻量级的,易于创建,多任务是重量级的,更难创建。研究这些并发模式可以使代码执行变得简单而有效。 9.

    57550

    java基础学习_GUI_如何让Netbeans的东西Eclipse能访问、GUI(图形用户接口)_day25总结

    Java为GUI提供的对象都存在java.awtjavax.swing两个包中。 java:为java的标准包。 javac:为java的扩展包。...-------------------------------------- (2)两个包: java.awt:Abstract Window ToolKit(抽象窗口工具包),...需要调用本地系统方法实现功能,属重量级控件。...(系统关联较强) javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。...那么你就可以用一个抽象类先实现这个接口(注意:仅仅是空实现:方法体为空),然后再用你的类继承这个抽象类,在你的类中用哪个方法就实现哪个方法,这样就可以达到目的了; 如果你直接用类实现接口

    58920

    YourBatman用趣味代码雨祝你:端午安康

    前端页面三剑客(CSS + JS + Html)牢牢占据UI的主导地位,无可撼动 AWTSwing都可以完成图形化界面编程。前者较老,后者较新用于替代前者。...因为AWT是依靠本地方法来实现功能的,所以AWT控件称为“重量级控件”。...Swing类库包含在JDK 1.2及以后版本中,类主要在javax.swing包里。...Swing不仅提供的AWT的所有功能,还用纯粹的Java代码(并非native调用)对AWT的功能进行了大幅度的扩充,例如:树形控件不是所有操作系统都支持,但使用Swing就可以无视操作系统。...由于Swing是用Java实现而非native方法实现,因此具有完美的跨平台特性 由于Swing不适用native方法,所以相较于AWT也被称作“轻量级控件” 祝:端午安康 你开发了祝福的程序, 你安装了虚拟的系统

    83851

    盘点 6 个淘汰的 Java 技术,它们都曾经风光过!

    栈长去年中秋也用过 swing: 这个中秋,我用 Java 画了一个月饼!...Swing 算是 Java 早期代替 AWT 的桌面应用 GUI 开发工具包,一个听到就已经淘汰的技术,给我的感觉就是丑丑丑!现在与 AWT 一起在时间这个长河里长眠。...如果 Java GUI 库发展历程分为三代,可以是: AWT > SWING > JAVAFX 随着 JavaFx 的发布,加速 SWING淘汰。下面这个是用 JavaFx 开发的: ?...图来源:oreilly.com 因为 EJB 过于复杂笨重,调试非常麻烦,现在都被轻量级的 RPC 框架(Dubbo)及轻量级 Restful 形式的分布式框架 (Spring Cloud) 替代了。...Struts 这篇就不多说了,具体看这篇:Struts2 为什么淘汰?

    1.7K60

    Java EE开发四大常用框架

    Spring能通过接口不是类促进好的编程习惯,减少编程代价到几乎为零。     Spring设计为让使用它创建的应用尽可能少的依赖于他的APIs。...但是比较遗憾的是AWT产生的是在各系统看来都同样欠佳的图形用户接口,JAVA1.2为老的java1.0 AWT添加了Java基础类(JFC),这是一个被称为“Swing”的GUI的一部分。...Swing是第二代GUI开发工具集,AWT采用了与特定平台相关的实现,绝大部分Swing组件却不是。...Swing是构筑在AWT上层的一组GUI组件的集合,为了保证可移植性,它完全用Java语言编写,与AWT相比,Swing提供了更完整的组件,引入了许多新的特性能力。...JComponent类是Swing组件的基类,JComponent继承自Container类,因此,所有的Swing组件都是AWT的容器。Swing采用了MVC设计模式。

    1.7K10

    【Java】The Java Headless Mode

    Headless 绕过重量级组件 如果一个带有GUI组件的代码在开关Headless模式下运行分别会有什么不同的效果?...", "true"); */ 使用awt的组件java.awt.GraphicsEnvironment#isHeadless,注意较高版本的JDK(例如 JDK11)中awk直接干掉了,需要下载外部依赖导入才可以使用...(Frame.java:385) */ 作为一个经验法则,请记住,像FrameButton这样的顶级组件总是需要一个交互式的环境,并且会抛出这个异常。...比如重量级组件控制台打印,在外部设计可以通过JOptionPane的GUI组件实现可视化效果,Headless则是利用我们熟知的System.out控制台输入输出流完成打印功能的模拟。...PS:建议使用JDK8之前的版本,可以直接引入awtswing的相关组件。

    2.2K40

    Java程序设计(高级及专题)- GUI「建议收藏」

    使用AWT所涉及的类一般在 java.awt 包及其子包中。 Container Component 是AWT中的两个心态。...Container是Component的子类,因此Container对象也可以当作Component对象添加到其他Container对象中。... javax.Swing 两个包中. * * java.Awt:Abstract Window ToolKit(抽象 窗口工具包) * 需要调用本地系统方法实现功能.属重量级控件 (跨平台不够强)...* * java.Swing:在AWT的基础上,建立的一套图形界面系统,器重提供了更多的组件, * 而且完全由java实现,增强了移植性,属于轻量级控件....包或者swing包中的那些图像界面组件. * 事件:每个事件源都有自己特定的对应时间共性时间. * 监听器:可以出发某一个事件的动作都已经封装到监听器中. */ public class test

    53820

    java高级语言程序设计_高级程序设计语言包括

    使用AWT所涉及的类一般在 java.awt 包及其子包中。 Container Component 是AWT中的两个心态。...Container是Component的子类,因此Container对象也可以当作Component对象添加到其他Container对象中。... javax.Swing 两个包中. * * java.Awt:Abstract Window ToolKit(抽象 窗口工具包) * 需要调用本地系统方法实现功能.属重量级控件 (跨平台不够强)...* * java.Swing:在AWT的基础上,建立的一套图形界面系统,器重提供了更多的组件, * 而且完全由java实现,增强了移植性,属于轻量级控件....包或者swing包中的那些图像界面组件. * 事件:每个事件源都有自己特定的对应时间共性时间. * 监听器:可以出发某一个事件的动作都已经封装到监听器中. */ public class test

    82510

    Java applet详解

    类型的对象 特别注明:JApplet是顶层的Swing容器,其内部用一个隐含的根面板(JRootPanel)作为惟一的直接后代,根面板中的内容面板(Content Pane)才是JApplet除菜单条外所有构件的双亲...使用paint()print帮助理解applet的生命周期 import java.awt.Graphics; import javax.swing.JApplet; import javax.swing.JButton...使用repaint()多线程来再applet中显示时钟 这个时钟就是电子表的形式,如果做成机械表的样式需要画钟表,再此不再叙述。...设置字体大小颜色属性 Graphics类Font类FontMetrics类结合在一起,就能在屏幕上显示文本。 Font类表示一个给定的字体,它的文本类型点的大小。...FontMetrics类给出有关字体的信息,如一个给定字符的实际高度宽度。下面我们不使用这个。

    1.3K20

    【移动架构】Flutter vs React Native:最后一句话。

    一个是AWT,它是一种为多个操作系统构建UI的方法,同时仍然保持操作系统的外观。 每个操作系统都有自己的组件,这些组件映射回使用AWT框架创建的AWT组件。...Java随后决定开发自己的渲染组件库SwingSwing所做的是处理自己的渲染 依赖底层操作系统组件的风险。Swing得了这场战斗,不久AWT就从地球上消失了。 这有什么关系?我为什么要离题?...React Native 组件传输到IOS或android组件,Flatter使用自己的渲染引擎(基于称为SKIA的2d渲染引擎)渲染自己的UI。(类似于游戏引擎自己进行渲染的方式)。...如果我们回顾一下SwingAWT之战作为参考,那么Flutter 可能会在这里获胜。...第一轮:Flutter 我又离题了,但传统上基于操作系统的开发是基于小部件的,基于浏览器的开发依赖于模板DSL。

    3.5K20

    如何快速学会一门新技术?李刚老师告诉你!

    点击“博文视点Broadview”,获取更多书讯 做技术开发的小伙伴总说成是吃青春饭的,其中一个原因可能在于技术更新迭代太快,不停地学习新技术会给人带来不小的压力,也很消耗精力。...针对这个问题,我们请到了一位非常重量级的嘉宾,也是最会教大家怎么学习新技术的资深培训讲师——李刚老师,来就这个话题给大家实地教学一下,告诉大家如何在技术方面实现一通百通,帮助大家轻松学技术,开心码代码!...著作长销十余年,累计发行60余万册,代表作《疯狂Java讲义》《疯狂Spring Boot终极讲义》《轻量级Java EE企业应用实战》《疯狂Android讲义》等著作受到广大读者的广泛认同。...的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程Java...反射机制,覆盖了java.lang、java.util、java.text、java.iojava.nio、java.sql、java.awt、javax.swing包下绝大部分的类接口。

    36550

    23 Java 图形化编程

    本章介绍的Java图形用户界面技术是基于Java SE 的 Swing,事实上它们在实际应用中使用不多,因此本章的内容只做了解。...AWT是AppletSwing技术的基础。 AWT在实际的运行过程中是调用所在平台的图形系统,因此同样一段AWT程序在不同的操作系统平台下运行所看到的样式不同的。...Swing技术基础 AWTSwing的基础,Swing事件处理布局管理都是依赖于AWTAWT内容来自java.awt包,Swing内容来自javax.swing包。...图所示是Swing容器类层次结构,Swing容器类主要有:JWindow、JFrameJDialog,其他的不带“J”开头都是AWT提供的类,在Swing中大部分类都是以“J”开头。...GridLayout 布局 GridLayout布局以网格形式对组件进行摆放,容器分成大小相等的矩形,一个矩形中放置一个组件。

    2.6K20
    领券