当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

Java桌面操纵程序筹划新贵:SWT简介[Java编程]

赞助商链接



  本文“Java桌面操纵程序筹划新贵:SWT简介[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Java语言的名誉和它在桌面利用程序(GUI程序)所获得的成就明显极不符合,至今仍旧很少能看到非常成功Java桌面程序.固然有JBuilder,Netbean,JProbe等大型软件作为代表,但这仍不能证明Java的GUI程序是成功的:它们的外观老是和同一操作系统平台下的别的软件显得格格不入.对机械配置的需求也仿佛永无止境,这使得它们只能被一些老是拥有当前最高性能PC的程序员们所容忍,或是那些不在乎金钱和时间的专业用户所承受.对绝大大都计算机利用者来说,AWT或SWING代表着独特的界面和无法承受的速度.Standard Widget Toolkit(SWT)大概是Java这一恶梦的终结者,广大Java程序员终于可以开辟出高效率的GUI程序,它们拥有尺度的外观,几近没有人能看出你的程序是用Java写出来的,更为重要的是,这些程序是跨平台的.

SWT本身仅仅是Eclipse组织为了开辟Eclipse IDE环境所编写的一组底层图形界面 API.大概是无心插柳,或是有意为之,至今为止,SWT无论是在性能和外观上,都超越了SUN公司供应的AWT和SWING.目前Eclipse IDE已经开辟到了2.1版本,SWT已经非常安定.这里指的安定应当包含两层意思:

一是指性能上的安定,此中的关键是源于SWT的计划理念.SWT最大化了操作系统的图形构件API,就是说只要操作系统供应了呼应图形的构件,那么SWT只是简单利用JNI技术调用它们,只有那些操作系统中不供应的构件,SWT才自己去做一个模拟的实现.可以看出SWT的性能上的安定大多时刻取决于呼应操作系统图形构件的安定性.

另一个安定是指SWT API包中的类、办法的名称和构造已经少有改变,程序员不用耽忧由于Eclipse组织开辟进度很快(Eclipse IDE每天城市有一个Nightly版本的公布),而招致自己的程序代码改变过大.从一个版本的SWT更新至另一版本,普通只需求简单将SWT包换掉便可以了.

第一个SWT程序

下面让我们开始一个SWT程序.(注意:以下的例子和阐明主要针对Windows平台,别的的操作系统应当大同小异).首先要在Eclipse安装文件中找到SWT包,Eclipse组织并不供应单独的SWT包下载,必须下载完好的Eclipse开辟环境才能得到SWT包.SWT是作为Eclipse开辟环境的一个插件情势存在,可以在${你的eclipse安装途径}plugins途径下的众多子目录下去搜索SWT.JAR文件,在找到的JAR文件中包含了SWT全部的Java类文件.因为SWT利用了JNI技术,因此同时也要找到相对应的JNI本地化库文件,由于版本和操作平台的差别,本地化库文件的名称会有些差别,比方SWT-WIN32-2116.DLL是Window平台下Eclipse Build 2116的动态库,而在Unix平台呼应版本的库文件的扩大名应当是.so,等等.注意的是,Eclipse是一个开放源代码的项目,因此你也可以在这些目录中找到SWT的源代码,相信这会对开辟很有帮忙.下面是一段翻开空窗口的代码(只有main办法).

import com.e2one.example;
public class OpenShell{
 public static void main(String [] args) {
  Display display = new Display();
  Shell shell = new Shell(display);
  shell.open();
  // 开始事件处理循环,直到用户关闭窗口
  while (!shell.isDisposed()) {
   if (!display.readAndDispatch())
    display.sleep();
  }
  display.dispose();
 }
}

确信在CLASSPATH中包含了SWT.JAR文件,先用Javac编译例子程序.编译无错后可运行java -Djava.library.path=${你的SWT本地库文件所在途径} com.e2one.example.OpenShell,比方SWT-WIN32-2116.DLL件所在的途径是C:swtlib,运行的号令应当是java -Djava.library.path=c:swtlib com.e2one.example.OpenShell.成功运行后,系统会翻开了一个空的窗口.

解析SWT API

下面再让我们进一步解析SWT API的构成.全部的SWT类都用org.eclipse.swt做为包的前缀,下面为了简化阐明,我们用*号代表前缀org.eclipse.swt,比方*.widgets包,代表的是org.eclipse.swt.widgets包.

我们最常用的图形构件基本都被包含在*.widgets包中,比方Button,Combo,Text,Label,Sash,Table等等.此中两个最重要的构件当数Shell和Composite.Shell相当于利用程序的主窗口框架,上面的例子代码中就是利用Shell构件翻开一个空窗口.Composite相当于SWING中的Panel对象,充当着构件容器的角色,当我们想在一个窗口中加入一些构件时,最好到利用Composite作为别的构件的容器,然后再去*.layout包找出一种符合的筹划方法.SWT对构件的筹划也采取了SWING或AWT中Layout和Layout Data结合的方法,在*.layout包中可以找到四种Layout和与它们相对应的筹划构造对象(Layout Data).在*.custom包中,包含了对一些基本图形构件的扩大,比方此中的CLabel,就是对尺度Label构件的扩大,上面可以同时加入文字和图片,也可以加边框.StyledText是Text构件的扩大,它供应了丰富的文本功效,比方对某段文字的后台色、前风光或字体的设置.在*.custom包中也可找到一个新的StackLayout筹划方法.

SWT对用户操作的呼应,比方鼠标或键盘事件,也是采取了AWT和SWING中的Observer情势,在*.event包中可以找到事件监听的Listener接口和呼应的事件对象,比方常用的鼠标事件监听接口MouseListener,MouseMoveListener和MouseTrackListener,及对应的事件对象MouseEvent.

*.graphics包中可以找到针对图片、光标、字体或画图的API.比方可通过Image类调用系统中差别范例的图片文件.通过GC类实现对图片、构件或显示器的画图功效.

对差别平台,Eclipse还开辟了一些富有针对性的API.比方,在Windows平台,可以通过*.ole.win32包很简单的调用ole控件,这使Java程序内嵌IE浏览器或Word、Excel等程序成为大概!


  以上是“Java桌面操纵程序筹划新贵:SWT简介[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .