网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.EJB 最佳实践:工业强度的 JNDI .
.Java 库的建立方法及其实例(6).
.对象相等比较:深入equals方法.
.用Java插件在浏览器中运行Java2 .
.Javascript实例教程(17) 使用字符.
.将 Java 小程序迁移到 Microsoft.
.SUN ONE架构.
.Sun Cobalt系列产品介绍.
.Java实时多任务调度过程中的安全.
.处理Java程序中没有被捕获的异常.
.实例讲解:Java中的SOAP技术.
.探索String 类.
.Eclipse3.1M2部分支持JDK5语法.
.java中按字节截取String字符串..
.初学java应该注意的地方.
.EclipseForm程序设计快速入门.
.在Java中应用设计模式-Factory M.
.用Java转化汉字为拼音全拼.
.Java初学者---Java的学习路径(全.
.安装SJD节省软件开支.

在Eclipse中使用SWT进行界面设计

发表日期:2008-1-5


  1. 为什么要使用SWT?
  SWT是一个IBM开发的跨平台GUI开发工具包。至于为什么IBM要费劲自己另起炉灶开发一个GUI工具包,而不是使用Sun现有的由AWT, Swing, Java 2D, Java 3D等构成的Java GUI框架,那就说来话长了。(记得在一个BBS上读过一个关于SWT起源的调侃类的帖子)。

  在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit). 虽然AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题。LCD问题导致了一些主要平台特征的遗失。假如你不明白的话(其实我也没明白),换句话说,假如平台A有窗口部件(widgets)1–40,而平台B有窗口部件(widgets)20–25,那么跨平台的AWT框架只能提供这两个窗口部件集的交集。

  为解决这个问题,Sun又创建了一个新的框架。这个框架不再使用原生窗口部件,而是使用仿真窗口部件(emulated widgets)。这个方法虽然解决了LCD问题,并且提供了丰富的窗口部件集,但是它也带来了新的问题。例如,Swing应用程序的界面外观不再和原生应用程序的外观相似。 虽然在JVM中这些Swing应用程序已经得到了最大程度的性能改善,但是它们还是存在着其原生对应物所不具有的性能问题。并且,Swing应用程序消耗太多的内存,这样Swing不适于一些小设备,如PDA和移动电话等。

  IBM进行了尝试以彻底解决AWT和Swing框架带来的上述问题。最终,IBM创建了一个新的GUI库,这就是SWT。SWT框架通过JNI来访问原生窗口部件。假如在宿主(host)平台上无法找到一个窗口部件,SWT就会自动地模拟它。

  2. SWT应用程序的组成
  一个SWT应用程序的基本组成部分为显示界面(Display)、命令界面(Shell,使命令进入并使运行初始化)和窗口部件(Widgets)。Display负责治理事件循环和控制UI线程和其他线程之间的通讯。Shell是应用程序中被操作系统窗口治理器治理的窗口。每个SWT应用程序至少需要一个Display和大于等于1个的Shell实例。

在Eclipse中使用SWT进行界面设计
  图1:从不同的角度看SWT应用程序

  图1从不同的角度展示了SWT应用程序。左侧的图是一个简化的UI对象的继续图。中间的图展示了UI对象的容器结构(containment strUCture)。右侧的图则是创建后的UI外观。

  假如一个应用程序使用了多个线程,那么每个线程都使用的是Display对象分配给它自己的实例。程序员可以使用静态方法Display.getCurent()来得到Display对象的当前活动的实例。





  
  Shell用于在特定的操作系统中表现窗口。Shell可以最大化、最小化或正常化。Shell有两种类型。第1种是高层shell,它是Display的子窗口,同时它也是一个主窗口。第2类是对话shell,这种shell要依靠于其他的shell窗口存在。
shell窗口最终成为上述那种类型,要看在创建shell时传递给shell构造函数的是什么风格位(style bits)。一个shell的默认值是DialogShell。也就是说,假如不带参数,那默认就是一个对话shell。而假如给参数赋予了一个Display对象,则该shell将是一个高层shell。

  一些窗口部件的属性必须在创建它们的初期就要被设置。这些窗口部件的属性就是前面所说的风格位(style bits)。在SWT的类中,风格位被定义为常数。例如,Button button = new Button( shell, <styleBits> )。可以使用或(OR)操作符“”来设置多个风格位。例如,假如想设置一个带边界的压下按钮,需要传递SWT.PUSH SWT.BORDER作为风格位参数。

  3. 进行SWT开发前的环境设置
  为了进行SWT应用开发,你需要把SWT库添加到类路径(classpath)上,并设置必要的环境变量。

  首先,你要在ECLIPSE_HOME\eclipse\plugins\org.eclipse.swt.win32_2.1.0\ws\win32目录下找到swt.jar库文件。注重这里的“org.eclipse.swt.win32_2.1.0”目录是和Eclipse的版本有关的。实在找不到你就用文件搜索功能吧。然后依次打开下面窗口Project->Properies->JavaBuildPath->Libraries->Add Variable -> Eclipse Home ->Extend将swt.jar文件加到类路径中。

  接着,你肯定想编译这个SWT应用了。但是会出现下面所示的运行异常。出现这个异常的原因是swt.jar库使用的是原生库。你需要设置java.library.path环境变量来使用Java中的原生库。

  控制台(Console )的输出如下:

上一篇:产生彩色验证码_(javabean实现) 人气:2344
下一篇:J2ME MIDP开发综合实例 人气:846
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐