`
Cherry007
  • 浏览: 16860 次
  • 性别: Icon_minigender_2
  • 来自: ChangSha
文章分类
社区版块
存档分类
最新评论

AWT与Swing使用区别

阅读更多

AWTSwing

 

使用区别

    使用Swing组件创建程序是因为它比AWT更为专业,而且Swing提供了更多的附加元素。比如说,通过SwingJEditorPane组件可以在Java程序中使用HTML格式文本。而AWT实现同样功能不但困难,而且要花费相当多的时间。

    Swing并不一定能使程序更容易床加你,但是可以使程序更加美观,而且容易在其他平台上运行。Swing组件一般比AWT组件强大得多。

    AWT类分为两部分。一部分可以安全的混入Swing类(如表Ⅰ);另一部分要用Swing的等价类对其替换(如表Ⅱ)。

 

表Ⅰ  可以与swing安全共存的AWT组件

 

类型

特殊类

所有现有的布局管理器

BorderLayout,CardLayout,FlowLayout,GridLayoutGridBagLayout

Java.awt.event包中所有的事件、监听器和适配器

ActionEvent,ActionListener,WindowEvent.WindowListener,WindowAdapter

所有非GUI存储容器

Dimension,Insects,Point,Polygon,Rectangle

提供访问系统资源的类

Color,Cursor,Font,FontMetrics,SystemColorToolkit

与图像相关的类

Graphics,Graphics2D,Image,MediaTracker

 

 

表Ⅱ  AWT类和Swing相对应的组件

 

AWT组件

Swing组件

备注

Applet

JApplet

不使用add()方法而是用

getContentPane().add;

JAppletjavax.swing包下的类

Button

JButton

代码兼容

Canvas

JPanelJLabel

paintComponent取代paint(),JPanelJLabel已经有了双缓冲

Checkbox

JCheckboxJRadioButton

代码兼容

CheckboxGroup

取代ButtonGroup

ButtonGroup可以组合检查框、单选按钮和按钮

CheckboxMenuItem

JCheckboxMenuItem

JRadioButtonMenuItem

代码兼容

Choice

JComboBox

项目的加入不同

Component

JComponent

一般不直接使用

Dialog

JDialog or,JOptionPane

不使用add方法而使用getContentPane().add

FileDialog

JFileChooser

不同

Frame

JFrame

不使用add方法而使用getContentPane().add

Label

JLabel

代码兼容

List

JList

列表需要独立的scroll pane和数据模型

Menu,MenuBar,

MenuItemPopupMenu

JMenu,JMenuBar,JMenuItem

JPopupMenu,JSeparator

JPopupMenu.Separator

代码兼容,但是separators是独立的类,不是成员变量

Panel

JPanel

代码兼容

Scrollbar

JScrollBarJSliderJProgressBar

取决于所使用的类

ScrollPane

JScrollPane

代码兼容

TextArea

JTextArea

必须手工加载scrollbars,事件监听器不同

TextComponent

JTextComponent

不直接使用

TextField

JTextFiled

代码兼容

Window

JWindow

代码兼容,不常用

 

 

 

使用Swing编程需要注意:

1.  不要再一个程序中混合使用SwingAWT GUI组件。原则上他们可以共存,但是可能会发生无法预料的情况。在使用GUI构件时,只用Swing组件可以减少问题发生。至少,应在最高层的容器中使用如JFrameJAppletSwing组件。然而,在Swing类中混合使用非GUIAWT类不会引起任何问题。

2.  尽管AWT组件是线程安全的,但Swing GUI组件却不是。如果创建的程序的GUI元素要用到线程操作,就需要使用自己设置的同步机制。如当程序中使用线程操作一个列表的表项时,若用户也在做同样的事,这是必须执行同步机制,以避免破坏列表的完整性。

 

分享到:
评论

相关推荐

    JAVA图形编程(AWT+SWING)

    通过`java图形编程1-AWT.chm`和`java图形编程2-Swing.chm`这两个文档,你可以深入学习AWT和Swing的使用方法,了解组件的创建、布局管理、事件处理、模型-视图-控制器模式,以及如何利用Swing的高级功能来构建复杂的...

    awt和swing是的关系

    ### AWT与Swing的关系及区别 在Java图形用户界面(GUI)开发中,AWT(Abstract Window Toolkit)和Swing是两个非常重要的组件库,它们都为开发者提供了创建跨平台应用程序的能力。本文将深入探讨AWT与Swing之间的...

    java awt/swing 计算器

    Java AWT 和 Swing 是两种用于...通过这个项目,开发者可以深入理解Java GUI编程,掌握AWT和Swing组件的使用,以及如何处理用户事件和执行计算逻辑。这对于学习Java图形用户界面开发和软件工程的基本原则非常有帮助。

    awt和swing学习实例大全

    #### 一、AWT与Swing概述 AWT(Abstract Window Toolkit)和Swing是Java中用于构建图形用户界面(GUI)的两个重要工具包。AWT是由Sun Microsystems开发的第一代GUI库,而Swing则是建立在AWT基础上的一个更高层次的...

    AWT和SWING的对比

    #### 三、AWT与Swing的关键区别 1. **性能与速度**:AWT依赖于本地方法,运行速度通常较快;而Swing由于完全使用Java代码实现,运行速度相对较慢,尤其是在复杂界面的渲染上。 2. **跨平台性**:Swing通过纯Java...

    使用Java AWT和Swing实现的简单计算器

    本项目"使用Java AWT和Swing实现的简单计算器"展示了如何利用这两个库创建一个基本的计算器应用。下面将详细探讨相关知识点。 1. **Java AWT**: AWT是Java最早的GUI库,它提供了与操作系统直接交互的基础组件,如...

    使用文本方式(控制台输入输出)和使用图形方式(可以使用AWT或者SWING)来实现猜数游戏。

    使用文本方式(控制台输入输出)和使用图形方式(可以使用AWT或者SWING)来实现猜数游戏。 进入程序后,显示文本内容,提示用户输入1-100之间的数字,然后程序对其进行判断,用户根据系统提供的提示信息继续猜,...

    深入解析Java GUI编程:AWT与Swing的对比

    本文将详细探讨AWT和Swing的区别,并提供代码示例来展示它们的使用。 尽管AWT是Java GUI编程的起点,但Swing由于其独立于平台、更好的性能和更丰富的组件集,已成为Java GUI开发的主流选择。理解AWT和Swing的区别...

    用eclipse进行awt,swing,界面化开发

    本篇文章将详细介绍如何在Eclipse中使用AWT和Swing进行界面化开发。 首先,AWT是Java最早提供的GUI库,它提供了基本的窗口组件,如按钮、文本框等。AWT组件与操作系统紧密集成,因此具有较好的性能和平台一致性。...

    Java计算器源代码 awt+swing图形界面

    Java 计算器源代码 awt+swing 图形界面是一款使用 Java 语言开发的图形化计算器应用程序,采用了 AWT 和 Swing 库来实现图形用户界面。下面是该计算器的主要知识点: 1. AWT 和 Swing 库:AWT(Abstract Window ...

    java实验报告之图形用户界面程序设计与 AWT/Swing组件

    在本实验报告中,主题是“Java实验报告之图形用户界面程序设计与AWT/Swing组件”,主要目标是让学生熟悉Java GUI设计原理、程序结构,掌握AWT和Swing组件的功能,以及学会应用这些组件来设计应用程序,特别是实现一...

    AWT/Swing 可视化eclipse插件

    在Java编程领域,AWT(Abstract Window Toolkit)和Swing是两种主要的GUI(图形用户界面)库。它们允许开发者创建交互式的桌面应用程序。Eclipse作为一款强大的集成开发环境(IDE),提供了丰富的插件支持,其中包括...

    AWT、swing(100个实例源码).rar

    100多个实例源码,学习awt、swing。AWT和Swing都是java中的包。 AWT(Abstract Window Toolkit):抽象窗口工具包,早期编写图形界面应用程序的包。 Swing :为解决 AWT 存在的问题而新开发的图形界面包。Swing是对...

    如何在SWT中使用AWT、SWING组件

    这篇文章将详细探讨如何在SWT环境中集成并使用AWT和SWING组件。 首先,SWT是Eclipse的原生GUI库,它提供了与操作系统更紧密的集成,因此可以创建更原生的外观和感觉。然而,AWT和SWING提供了更多的组件和功能,例如...

    贪吃蛇(Java)、AWT/Swing

    在Java编程语言中,我们可以使用AWT(Abstract Window Toolkit)或Swing库来实现这个游戏。这两个库是Java GUI(图形用户界面)开发的核心组件,它们提供了丰富的组件和接口,帮助开发者创建桌面应用程序。 AWT是...

    java图形界面设计awt和swing,这是两个chm文件,体积虽小,但内容绝对不少,值得下载

    Swing组件被称为重量级组件,因为它们是建立在AWT组件之上,使用了Java自己的图形绘制机制,而不是依赖操作系统。Swing提供了一个更丰富的组件集合,包括一些AWT没有的组件,如JTable、JTree和JTabbedPane等。Swing...

    java awt、Swing实现中国象棋可联机版本采用面向对象思想

    使用原生的java awt、Swing进行窗口式开发 将素材文件夹放在D:\Game路径下 两个工程直接导入Eclipse,即可运行, ps:一个工程运行两次也可以,需要注意端口号,代码默认如果连接的端口号是3003,则监听3004端口,...

    java(awt/swing)局域网即时聊天源码

    运用面向对象编程,继承、封装和多态等,Java语言的基本语法,Java IO;多线程编程,网络编程,序列化,反射,程序国际化;基本的界面编程(AWT和Swing)等基础知识。是学习java基础的一个极好案例。

Global site tag (gtag.js) - Google Analytics