Java GUI:SWT/Swing/AWT的介绍及比较 - 编程入门网
g Frame JFrame JWindow
注意:在另外几个包中还有其他一些 Swing 组件,但是这是基本的组件集。 清单 5. Swing 提供了以下 LayoutManagers(全部在 javax.swing 包或其 子包中,“*” 表示接口) *LayoutManager CenterLayout *LayoutManager2 BoxLayout OverlayLayout SpringLayout 注意:在另外几个包中还有其他一些 Swing 布局管理器,很多都是为它们所 布局的容器而专门定制的,但是这是基本的布局管理器集。 清单 6. Swing 提供了以下事件(大部分在 javax.swing.events 包及其子 包中) Object EventObject AWTEvent AncestorEvent ComponentEvent InputEvent KeyEvent MenuKeyEvent MouseEvent MenuDragMouseEvent InternalFrameEvent 注意:在另外几个包中还有其他一些 AWT 事件,但是这是基本的事件集。这 些是从更通用的事件生成的“高级” 事件。 为了克服在不同主机上行为也会不同的缺点,Swing 将对主机控件的依赖性 降至了最低。实际上,Swing 只为诸如窗口和框架之类的顶层 组件使用对等体 。大部分组件(JComponent 及其子类)都是使用纯 Java 代码来模拟的。这意 味着 Swing 天生就可以在所有主机之间很好地进行移植。因此,Swing 通常看 起来并不像是本地程序。实际上,它有很多外观,有些模拟(尽管通常并不精确 )不同主机的外观,有些则提供了独特的外观。 Swing 对基于对等体的组件使用的术语是重量级(heavyweight),对于模拟 的组件使用的术语是轻量级(lightweight)。实际上,Swing 可以支持在一个 GUI 中混合使用重量级组件和轻量级组件,例如在一个 JContainer 中混合使用 AWT 和 Swing 控件,但是如果组件产生了重叠,就必须注意绘制这些控件的顺 序。 Swing 无法充分利用硬件 GUI 加速器和专用主机 GUI 操作的优点。结果是 Swing 应用程序可能比本地 GUI 的程序运行速度都慢。Sun 花费了大量的精力 来改进最近版本的Swing (Java V1.4 和 1.5)的性能,这种缺点正在变得日益 微弱。由于 Swing 的设计更加健壮,因此其代码基础也更坚实。这意味着它可 以在一台健壮的机器上比 AWT 和 SWT 上运行得更好。 除了具有更多的组件、布局管理器和事件之外,Swing 还有很多特性使得自 己比 AWT 的功能更加强大。下面是更为重要的几个特性: Java GUI:SWT/Swing/AWT的介绍及比较(3)时间:2010-12-24模型与视图和控件分离 对于这个模型中的所有组件(例如按钮、列表、表、树、富文本)来说,模 型都是与组件分离的。这样可以根据应用程序的需求来采用模型,并在多个视图 之间进行共享。为了方便起见,每个组件类型都提供有默认的模型。 可编程外观 每个组件的外观(外表以及如何处理输入事件)都是由一个单独的、可动态 替换的实现来进行控制的。这样我们就可以改变基于 Swing 的GUI 的部分或全 部外观。 呈现器和编辑器 大部分显示模型内容的组件,例如列表、表和树,都可以处理几乎所有类型 的模型元素。这可以通过为每种组件类型和模型类型映射一个渲染器或编辑器来 实现。例如,一个具有包含 java.util.Date 值的列的表可以有一些专用的代码 来呈现数据值和编辑数据值。每一列都可以有不同的类型。 可访问性 创建一个残疾人可以访问的GUI 是非常重要的。Swing 为实现具有可访问性 的GUI 提供了丰富的基础设施和 API。这种支持是单独的,但是如果主机上具有 可访问性支持,那么它们应该集成在一起。 与 AWT 一样,Swing 可以支持 GUI 组件的自动销毁。Swing 还可以支持 AWT 的自底向上和自顶向下的构建方法。 与 AWT 不同,Swing 组件不是线程安全的,这意味着您需要关心在应用程序 中是哪个线程在更新 GUI。如果在使用线程时出现了错误,就可能会出现不可预 测 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |