SWT(StandardWidgetToolkit)即标准小窗口工具箱,是IBM公司推出的一种在Eclipse中使用的集成开发环境,SWT提供可移植的API,并与底层本机OSGUI平台紧密集成,它是一个与本地窗口系统集成在一起的小部件集和图形库。SWT由JNI(JavaNativeInterface,Java本机接口)调用操作系统的内部API,因此运行速度快,能够获得与操作系统的内部应用程序相同的外观。
当你用SWT编写应用程序的时候,你可能需要用布局(layout)来给你的窗口设置特特定的外观。布局控制组合窗口组件(composite)中的子组件的位置和大小。布局类都是抽象类Layout的子类。这篇文章为你展示了如何使用标准布局,以及如何编写定制你自己的布局。
java的标准图形 API : AWT/SWING 一直是被后人诟病的, 用它写的页面不够完美, 页面响应速度还慢。 后来出现的Eclipse 的SWT/JFace 图形 API 彻底改变了这一状况。 主要原因是: SWT/JFace 与AWT/SWING 在实现上有很大的不同, AWT/SWING 是模拟本机窗口组件, 而 SWT/JFace 则是直接调用本机窗口组件,当本机没有所需组件时才进行模拟。
SWT 是一个库,它创建了Java 版的本地主机操作系统 GUI 控件。它依赖于本机实现。这意味着基于 SWT 的应用程序具有以下几个关键特性: 它们的外观、行为和执行类似于“本机”应用程序。 所提供的窗口小部件(widget)反映了主机操作系统上提供的窗口小部件(组件和控件)。<br> 主机 GUI 库的任何特殊行为都在 SWT GUI 中得到反映。 这些目标使得 SWT 不同于 Java 技术的 Swing,Swing 的设计目标是消除操作系统的差异。<br> SWT 库反映了主机操作系统的基本窗口小部件。在许多环境下,这种方法太低级。JFace 库有助于向 SWT 应用程序中添加大量服务。JFace 并没有隐藏 SWT,它只是扩展了 SWT。正如您将在这一系列的后面部分中看到的,SWT 最重要的扩展之一是,将应用程序的数据模型与显示及更改它的 GUI 隔离开来。
SWT图像处理入门Standard Widget Toolkit(SWT,标准窗口小部件工具箱),是在Eclipse平台上使用的窗口小部件工具箱,它能向开发者提供和本机平台一致的用户界面和比较稳定的性能,也提供了强大的图像处理功能。本文首先介绍SWT封装的Image,ImageData等类,接着根据作者实际工作经验给出了一些常见图像处理的解决方法。
Draw2D 是一个驻留在 SWT Composite 之上的轻量级窗口小部件系统。一个 Draw2D 实例 由一个 SWT Composite、一个轻量级系统及其内容的图形组成。图形 是 Draw2D 的构建块。关于 Draw2D API 的所有细节,可以从 Draw2D Developer’s Guide 的 Eclipse 帮助文件中找到。因为本文不打算成为一篇讲述 Draw2D 的教程,所以,为了简便起见,只要您了解 Draw2D API 可以帮助您在 SWT Canvas 上进行绘图就足够了。您可以直接使用一些标准的图形,比如 Ellipse、Polyline、RectangleFigure 和 Triangle,或者,您可以扩展它们来创建自己的图形。此外,一些容器图形,如 Panel,可以充当所有子图形的总容器。
SWT(Standard Widget Toolkit) Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。
1、理解Draw2d Draw2d是SWT平台上的图形库,你可以用它定制属于自己的、不依赖于特定操作系统本地组件的上层组件;也可以用它开发基于图形的应用程序。一般来说,基础代码编写者/GUI组件提供者们使用前一个功能,像译者这样开发应用程序的人则使用后者更多一些。 Draw2d库依赖于SWT(不依赖JFace),提供了完整的图形应用程序开发包,使用它你几乎可以作出任意的图形,但是除了简单的几何图形以外,任何图形都需要开发者自己手绘、或者用已有的图形进行组合;
基于Java的图形库最主要的有三种,它们分别是Swing、AWT和SWT。其中前两个是Sun随JDK一起发布的,而SWT则是由IBM领导的开源项目(现在已经脱离IBM了)Eclipse的一个子项目。 SWT的执行效率非常高。这是由于SWT的底层是由C编写的。由于SWT通过C直接调用系统层的GUI API。因此,使用SWT编写GUI程序,在外观上就和使用C++、Delphi(在Windows下)编写的程序完全一样。它的这一点和AWT类似。AWT在底层也是使用C直接调用系统层的GUI API。
XWT什么是XWTXWT(XML windowing Toolkit),一个新的工具包或框架,用于声明性地定义SWT/JFace应用程序的结构。XWT即SWT的XMLUI,是一个框架,用来以XML(.xwt)声明式地编写SWT/JFace小部件。在XWT中,应用程序的完整结构或小部件分层结构也都是以XML声明式定义的。一个能实现小部件、事件回调和业务逻辑的Java文件也会被创建。UI组件可以绑定一个底层应用程序模型,以便为UI组件提供数据。XWT的好处很明显。
16.1 JFace对话框概述 ◆ ErrorDialog:可根据错误级别来显示错误信息,一般用于Eclipse工作台。 ◆ MessageDialog:可显示提示信息的对话框,类似于SWT的对话框,但比SWT功能强大。 ◆ MessageDialogWithToggle:一般在保存首选项所设置的值时显示是否保存的提示信息。 ◆ ProgressMonitorDialog:可以显示后台线程进度的对话框。 ◆ InputDialog:用于输入信息的对话框,同时可以验证用户的输入,并可以将验证的信息显示在对话框中。
Draw2d是SWT平台上的图形库,你可以用它定制属于自己的、不依赖于特定操作系统本地组件的上层组件;也可以用它开发基于图形的应用程序。一般来说,基础代码编写者/GUI组件提供者们使用前一个功能,像译者这样开发应用程序的人则使用后者更多一些。
Draw2d是SWT平台上的图形库,你可以用它定制属于自己的、不依赖于特定操作系统本地组件的上层组件;也可以用它开发基于图形的应用程序。一般来说,基础代码编写者/GUI组件提供者们使用前一个功能,像译者这样开发应用程序的人则使用后者更多一些。Draw2d库依赖于SWT(不依赖JFace),提供了完整的图形应用程序开发包,使用它你几乎可以作出任意的图形,但是除了简单的几何图形以外,任何图形都需要开发者自己手绘、或者用已有的图形进行组合;同时,如果你想让你的图形响应各种事件(鼠标/键盘/拖拽等),也必须事事躬亲,显然自由的代价就是繁冗的代码。
SWT参考
用SWT绘图通常由两种方法,一种是借助Graphics Context,另一种是利用Draw2D。然而Draw2D是一个基于SWT Composite的轻量级组件,于是在效率上,它无法体现出SWT的NativeCode的速度优势。故其虽然强大,但仅适用于绘图工作不是系统瓶颈的应用程序。所以我在这里只介绍第一种方法。
在SWT中,graphic context(GC)可以单独创建为一个对象,也可以通过PaintEvent获得。但是在Draw2d中,Figure 可以从2.1节中讲述的那些paint方法中获得Graphics(方法参数)。Graphics的绝大多数方法都和CG中的相同,最大 的不同是Draw2d允许Graphics对象利用translate()方法移动。 然而,Draw2d提供了更为强大的功能来创建和操纵几何图形(Shapes)。它有好几个包、很多类用来处理几何图形。
Draw2d是SWT平台上的图形库,你可以用它定制属于自己的、不依赖于特定操作系统本地组件的上层组件; 也可以用它开发基于图形的应用程序。一般来说,基础代码编写者/GUI组件提供者们使用前一个功能,像译 者这样开发应用程序的人则使用后者更多一些。
SWT/JFace简介:SWT(Standard Widget Toolkit)即标准小窗口工具箱,是IBM公司推出的一种在Eclipse中使用的集成开发环境,SWT提供可移植的API,并与底层本机OS GUI平台紧密集成,它是一个与本地窗口系统集成在一起的小部件集和图形库。SWT由JNI(Java Native Interface,Java本机接口)调用操作系统的内部API,因此运行速度快,能够获得与操作系统的内部应用程序相同的外观。<br><br> JFace是一个用户界面工具箱,也是一个易用、功能强大的图形包,它简化了常见的图形用户界面的编程任务。SWT和JFace都是Eclipse平台上的主要组件。JFace是在SWT的基础上创建的,但JFace并不能完全覆盖SWT的功能,JFace和SWT的关系如图4.1所示。由于JFace的功能更强大,因此做图形界面开发时一般优先选用JFace。
解决方法:采用SWT中的虚拟表格技术来创建拥有大数据量的表格,解决加载速度让人难以忍受的问题,提升加载效率。为了充分的说明问题,本文通过对比常规方法和虚拟表格技术加载2万条数据所需的时间,来说明虚拟表格在加载大数据量时的优越表现。