`
ningxiaofeng
  • 浏览: 6805 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

SWT 转帖及整理

阅读更多

一:SWT 对比Swing的两个重要区别:

1)SWT/JFace依靠JNI来管理操作系统的渲染而不是由其自己来实施。

——对比Swing:

Swing的渲染 为了确保界面在跨平台是能保持一致,Swing对用户界面的每一个细节的渲染进行完全控制,也就是Java虚拟机指令到其组件的每一个象素和具体行为。虽然Swing也同底层平台保持通信,但是却不使用操作系统任何已内置的对象,即其白手起家,创建每一个对象。因为这些组件都运行于较高层次,它们被引喻为轻量级组件。这些组件在任何Java支持的平台上表现一致。

 

2)SWT/JFace的资源管理,不依赖于垃圾自动回收机制

——对比Swing:

对操作系统资源使用AGC是困难的,由于Swing在高端层次建立了其轻量级的组件,所以这还不成为一个问题。然而,如果在低端层次如SWT小部件同样去使用自动回收机制,那么在跨平台环境下错误的易发性和不确定性将会是个灾难。

 

二:JFace适配器:

阅读器 分离小部件的外观和信息

动作和实施 简化和组织事件处理进程

图案和字体注册 管理和分配/释放图案、字体资源

对话框和向导 扩展SWT对话框和用户互动的能力

 

三:基本容器归纳

重要的对象是Display,它在后台与操作系统保持着通信。这一通信确保你的SWT/JFace应用程序可以使用原生组件并处理事件。虽然Display自己没有任何外观,但其它的小部件都需要它的运作才得以成形。 SWT提供一个Shell类作为大一统的GUI应用程序和对话框的容器。Shell形成GUI的父窗口并为子小部件们和Display提供通信。使用风格值,你可以定制Shell的外观和行为。 与上面相对照的,JFace的应用程序使用ApplicationWindow作为它们的主容器。不同于Shell, ApplicationWindow没有内置的form。这意味着你可以随心所欲地指定你的顶级窗口;另外,这些对象提供的方法可以轻易与其他特性集成,如菜单、工具条或是状态栏等。

 

四:理解Widget类

Widget是所有在SWT和JFace中所有显示信息以及和用户互动的类的超类。然而不仅它是一个抽象类,另外Eclipse.org组织也强烈反对由其产生子类,因为其间牵涉太多的复杂性。因此,你不能从Widget类继承或是在你的代码中直接使用它。事实上,这个类的重要性是在于它把所有的小部件统合在一个结构下。

 

五:Control类

在Control类中的对象在操作系统中有一个直接的对应物,你可以通过类里的句柄域加以接近它。然而在Control类之外,SWT还提供了不少的小部件。

 

六:JFace中的事件处理

一个监听器接口能够为不同的control提供相同的事件处理,但是其使用依赖于发起这一事件的组件。接收鼠标事件的监听器不能用以菜单栏的选择。即便是非类型化的事件也只是在程序指定了哪一类的control来触发事件后才有用。 但是当你处理复杂的用户界面时,将事件处理能力从产生事件的GUI组件中分离出来的做法就很有帮助了。

Jface用其Action和ActionContributionsItem类提供了这样的分离。一个ActionContributionItem 组合了一个GUI组件的功能和添附于其上的监听器类。当用户与其互动时,将会触发与其相联系的动作类,以负责处理该事件。虽然这看上去和SWT的监听器/事件模型相似,但是这些类却更加抽象,易于使用,范围相对专一。

 

如果存在这样一组套件,它仅关注于平时经常使用的小部件和事件,并将这一切的使用尽可能作简化,那将极大地简化事件编程。JFace的事件处理结构所做的正是如此:它的目标就是为了时事件处理更加简介明了,它允许程序员仅使用少量的几行代码来接收和处理通常的事件。为了达成这一目标,JFace做了如下三个假设:

1)用户的动作将限于按钮、工具条和菜单

2)每一个组件将仅有一个事件与之相联系

3)每一个事件仅有一个事件处理器

 

JFace中的一个Action可以简单地理解成一个命令。在JFace里面,Action可以关联到菜单,工具条,以及按钮(也就是Button)。

 

七:事件处理概述:

很明显的,对于复杂的图形界面必须综合使用两种事件处理机制。虽然JFace可以提供菜单、工具条和按钮的快速编程,但是我们还需要SWT来处理键盘事件以及和Shell、表等小部件相关的事件。另外,JFace类也无法区分一个鼠标右击和左击事件。因此,对于一个GUI变成人员事实上是在寻找一条综合使用两个套件以最少代码获取最大功能的途径。

分享到:
评论

相关推荐

    swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位

    标题“swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位”表明这个压缩包包含了适用于64位Windows操作系统的SWT库。描述中提到的“64位windows操作系统使用的SWT库”进一步确认了这一点。 SWT的设计目标是...

    SWT源码 swt.jar

    SWT(Standard Widget Toolkit)是Eclipse项目的一个重要组成部分,它提供了一套用于构建图形用户界面(GUI)的API,与Java Swing不同,SWT基于操作系统原生的UI组件,因此能够实现更好的性能和与操作系统的集成。...

    SWT配置 SWT配置 SWT配置 SWT配置 SWT配置

    ### SWT配置详解 #### 一、SWT简介与配置的重要性 SWT(Standard Widget Toolkit)是一种用于构建基于Java的应用程序的图形用户界面工具包。它提供了丰富的控件集,并能够生成本地外观和感觉的界面,这使得应用在...

    swt-api swt DOC

    【标题】"swt-api swt DOC" 指的是一个关于SWT(Standard Widget Toolkit)API的文档,主要用于Java GUI(图形用户界面)开发。这个文档可能是开发者们在使用SWT进行界面设计时的重要参考资料。 【描述】"java界面...

    swt教程 有关SWT怎么应用

    在本文中,我们将深入探讨SWT(Standard Widget Toolkit)的应用,以及如何在Java应用程序中使用它。SWT是由IBM公司为Eclipse集成开发环境设计的一种图形用户界面(GUI)工具包,它通过JNI(Java Native Interface)...

    SWT API 帮助文档 及源码

    **SWT API 帮助文档及源码详解** SWT (Standard Widget Toolkit) 是一个开源的Java库,用于创建图形用户界面(GUI)。它由Eclipse基金会维护,旨在为Java开发者提供与本地平台更紧密集成的GUI组件,提供与操作系统...

    swt.jar swt.jar swt.jar

    swt.jar swt.jar swt.jar swt.jar swt.jar

    swt工具文档 swt工具文档

    SWT(Standard Widget Toolkit)是Java编程环境中一个用于创建图形用户界面(GUI)的开源库。它是Eclipse项目的一部分,旨在提供与操作系统更紧密的集成,使得开发者可以创建原生外观的应用程序。SWT提供了丰富的...

    SWT JFace 按键、事件、监听

    ### SWT JFace 按键、事件、监听 #### 概述 SWT(Standard Widget Toolkit)是Eclipse平台下的图形界面开发工具包,而JFace则是基于SWT之上的高级用户界面工具集。SWT提供了低级别的组件,用于创建跨平台的图形...

    java界面库swt.jar 4.911

    下载编译的SWT库,版本号4.911,包含多个版本: org.eclipse.swt.cocoa.macosx.x86_64 org.eclipse.swt.gtk.linux.aarch64 org.eclipse.swt.gtk.linux.arm org.eclipse.swt.gtk.linux.ppc64le org.eclipse.swt.gtk....

    swt table 实现换行

    根据提供的文件信息,可以看出本文主要讨论的是如何在 SWT (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...

    SWT源代码 SWT Source code

    SWT(Standard Widget Toolkit)是Eclipse开源项目中的一部分,主要用于构建GUI(图形用户界面)应用程序。它提供了一组与操作系统紧密集成的图形控件,允许开发者创建原生外观的应用程序。SWT的设计目标是提高性能...

    SWT api官方文档

    SWT官方api文档 开发基于swt的GUI程序必备手册

    org.eclipse.swt.win32

    org.eclipse.swt.SWT.class org.eclipse.swt.SWTError.class org.eclipse.swt.SWTException.class org.eclipse.swt.accessibility.ACC.class org.eclipse.swt.accessibility.Accessible.class org.eclipse.swt....

    SWT插件中文教程SWT常用方法

    SWT(Standard Widget Toolkit)是Java编程环境中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse项目的一部分。SWT提供了与操作系统本机UI组件的直接交互,从而能够创建性能高效、外观与操作系统的原生应用...

    java swt自定义控件

    Java SWT(Standard Widget Toolkit)是Java平台上用于创建桌面应用程序的一个库,它提供了丰富的用户界面元素,如按钮、文本框、列表等。SWT是Eclipse IDE的基础,它通过与操作系统直接交互来提供本地化的图形用户...

    SWT_全接触 SWT_全接触 SWT_全接触

    根据给定的信息,本文将详细介绍SWT(Standard Widget Toolkit)的相关知识点,包括其背景、特点、与AWT/Swing的对比以及如何开始使用SWT。 ### SWT简介 SWT(Standard Widget Toolkit)是一个开放源码的原生GUI...

    SWT 弹出对话框 可以选择的图标种类

    SWT(Standard Widget Toolkit)是Java编程中用于创建图形用户界面(GUI)的一种库,它为开发者提供了丰富的控件和对话框。在SWT中,`MessageBox`是一个用于显示简单的消息对话框的类,通常用来向用户显示警告、确认...

    swt windows平台64位的包

    SWT (Standard Widget Toolkit) 是一个开放源代码的Java库,用于在各种操作系统上创建图形用户界面(GUI)。它是Eclipse项目的一部分,提供了一种替代Java标准库AWT和Swing的方式,允许开发者构建与本机系统更加紧密...

    SWT的官方压缩包

    SWT(Standard Widget Toolkit)是Java编程环境中一个用于创建图形用户界面(GUI)的开源库,它是Eclipse项目的一部分。SWT提供了与操作系统本机GUI控件直接交互的能力,使得Java应用程序可以拥有更加原生的外观和...

Global site tag (gtag.js) - Google Analytics