Swing和SWT简介
Swing产生的主要原因就是AWT不能满足图形化用户界面发展的需要。AWT设计的初衷是支持开发小应用程序的简单用户界面。AWT缺少剪贴板、打印支持、键盘导航等特性;AWT功能较弱,它甚至不包括弹出式菜单或滚动窗格等基本元素。此外,AWT体系结构还存在着其他一些严重的缺陷。
随着图形化用户界面发展的需要,Swing出现了,Swing组件几乎都是轻量级组件,与AWT相对的重量级组件相比,Swing没有本地的对等组件,不像重量级组件那样要在它们自己本地的不透明窗体中绘制,轻量级组件会在它们的重量级组件的窗口中绘制。
SWT本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API。或许是无心插柳,或是有意为之,至今为止,SWT无论是在性能和外观上,都超越了SUN公司提供的AWT和SWING。目前Eclipse IDE已经开发到了2.1版本,SWT已经十分稳定。这里指的稳定应该包含两层意思
比较Swing和SWT
1.组件体系:
a) Swing:通过在父组件上动态调用add()和remove()方法,来对组件树进行动态维护,因此,可以存在没有父组件的子组件。
b) SWT:通过在构造函数的参数中,指定父组件,因此,不可能存在没有父组件的子组件。
2.组件绘制:
a) Swing:通过调用组件的paint()方法来进行组件的绘制,组件进一步对他的子组件调用paint(),从而完成整棵组件树的绘制。通过子类化,重写paint()方法,可以完全定制一个组件的绘制。
b) SWT:SWT组件只是本地平台上实际组件的一个代理,实际组件采用win32编程方式进行绘制,绘制的过程不在JVM中完成。因此,子类化也不能对绘制进行完全定制。当SWT组件进行绘制时,他在完成了本地的绘制以后,会返回JVM,然后对所有已注册的PaintListener发出通知,因此,通过注册PaintListener可以对组件绘制进行一定程度上的修改。
3.事件模型:
a) Swing中的事件会跟据当前的焦点进行发送。父组件不能对事件进行过滤。Swing中的事件监听器都是有类型的,因此每个组件所能支持的事件类型是通过方法名来限定的。不能扩展。
b) SWT中的事件也是根据当前的焦点进行发送。父组件不能对事件进行过滤。SWT中支持有类型的监听器,也支持无类型的监听器,通过addListener(type,listener),我们可以为组件添加任何类型的监听器。
4.包设计:
a) Swing是一个纯粹的组件库,他没有图形的操作,他的绘制最终转发给Java 2D来完成。
b) SWT包含了组件库和图形库,他的结构与AWT比较接近。
以上是总结Swing和SWT,希望对大家有用。
分享到:
相关推荐
在标题提到的"swt源码和jar包dj-native-swing-swt.jar"中,"dj-native-swing-swt.jar"是一个特殊的库,它结合了SWT和JNativeSwing,允许在Java Swing应用中嵌入SWT组件。这使得开发者可以在同一应用程序中同时使用...
Java是一种广泛使用的编程语言,在图形用户界面(GUI)设计领域提供了多种开发包,其中比较著名的有Swing、SWT和AWT。这三种技术各有特点和适用场景,在开发Java图形界面应用时,开发者需要根据实际需求选择最合适的...
swing2swt java应用开发包,貌似现在很少了
在Java编程领域,Swing和SWT(Standard Widget Toolkit)是两种主要的GUI(图形用户界面)工具包,用于创建桌面应用程序。这个“关于swing和swt的小练习”压缩包文件提供了一些实际的代码示例,帮助开发者深入理解这...
在Java编程环境中,SWING和SWT(Standard Widget Toolkit)是两种常见的图形用户界面(GUI)库,用于创建桌面应用程序。然而,有时我们可能需要在这些应用中集成Web浏览功能,比如显示网页或者运行Web应用。这篇博客...
Java Swing和 SWT 是两种在Java中创建图形用户界面(GUI)的库,它们都提供了丰富的组件和工具来构建桌面应用程序。在这篇文章中,我们将深入探讨Java Swing中的分页技术和SWT(Standard Widget Toolkit)的使用,...
在Java桌面应用开发领域,Swing和SWT(Standard Widget Toolkit)是两个常用的库,用于创建用户界面。本篇文章将深入探讨Eclipse中的Swing和SWT插件,特别是jigloo插件。 Swing是Java Foundation Classes (JFC)的一...
Swing Designer SWT 是一款强大的图形化工具,专为在Java环境中设计Swing和SWT用户界面而设计。这款插件是Eclipse IDE的一个扩展,它允许开发者通过直观的拖放方式构建用户界面,大大简化了GUI(图形用户界面)开发...
Java中的AWT(Abstract Window Toolkit)和Swing都是用于构建图形用户界面(GUI)的工具包,它们都属于Java基础类库(Java Foundation Classes, JFC)。AWT是早期Java GUI开发的基础,而Swing是在AWT的基础上发展...
- **SWT**:SWT 是由 Eclipse 开发的另一个 GUI 编程框架,它利用本地系统资源来实现界面元素,从而在性能和外观上超越了 Swing。Eclipse 本身就是使用 SWT 构建的,这显示了其强大的功能。 #### 3. Swing 和 SWT ...
Eclipse Swing SWT Builder插件就是专门针对这两个库设计的,它极大地简化了Swing和SWT组件的设计和布局工作。 Swing是Java的标准GUI库,基于Java AWT(抽象窗口工具包)并扩展了它,提供了更多的组件和更现代的...
在Java中,主要有三个库用于创建GUI:Abstract Window Toolkit (AWT)、Swing和Standard Widget Toolkit (SWT)。下面将详细阐述这三个库的特点、用途以及它们之间的差异。 ### AWT(Abstract Window Toolkit) AWT是...
swt swing awt的区别
DJNativeSwing-SWT.jar是这个库的核心,它实现了将SWT组件集成到Swing应用中的桥梁,使得开发者可以在一个应用中同时利用Swing和SWT的优点。 DJNativeSwing.jar是DJProject的主要库,它包含了一系列用于构建混合...
Jigloo插件为Swing和SWT之间提供了一个桥梁,使得开发者可以在SWT项目中使用Swing组件。这种混合使用的方法特别适用于那些希望利用Swing的优势同时又想利用SWT高性能特性的场景。 - **Jigloo开发SWT的常见问题** ...
通过这个例子可以看出,虽然Swing和SWT在语法上有明显的差异,但在实现相同功能时所采取的基本思路是类似的。 #### 七、总结与资源 迁移Swing应用到SWT的过程可能会遇到一些挑战,但通过仔细规划和逐步实施,可以...
- **Jigloo**:Jigloo是另一个插件,主要用于SWT和Swing应用的开发,支持Eclipse环境下的图形界面构建。 #### 6. 实战案例 - **开发UDP局域网聊天桌面应用**:使用Swing或AWT组件构建一个简单的聊天应用,支持用户...
- **SWT (Standard Widget Toolkit)**:相比于AWT和Swing,SWT更加注重性能和本地外观。SWT使用本地控件,这意味着它可以更好地融入不同的操作系统环境中,同时提供了接近原生应用程序的性能。 ##### 18.1.3 标准...
本章详细介绍了Java图形界面开发的基础知识和技术,包括AWT、Swing和SWT等工具的使用。通过这些技术,开发者可以创建功能丰富、用户友好的GUI应用,无论是简单的Applet还是复杂的桌面软件。此外,还介绍了如何利用...