Ecli e3.0的swt编程

文章作者 100test 发表时间 2007:09:06 11:53:01
来源 100Test.Com百考试题网


  一、swt简介
  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包换掉就可以了。

  二、Eclipse3.0的swt编程
  1.swt比awt和swing要快多,因为它是利用操作系统的界面组件生成UI的,在java桌面设计领域掀起一场革命
  2.环境配置:
  windows系统 eclipse3.0
  3.具体操作:
  (1).新建一java项目,命名swt,文件结构如下:

   swt
   bin(编译输出)
   src(原文件)
   AddressBookUI.java
   swt-awt-win32-3062.dll(以下均从eclipse\plugins\org.eclipse.swt.win32_3.0.1\os\win32\x86下导入)
   swt-win32-3062.dll
   javaw.exe.manifest
  (2).到项目的properties里,在java build path | libraries里将swt.jar导入
  (3).AddressBookUI.java原代码如下:
  import org.eclipse.swt.widgets.Display.
  import org.eclipse.swt.widgets.Shell.
  import org.eclipse.swt.SWT.
  import org.eclipse.swt.widgets.Button.
  import org.eclipse.swt.widgets.Group.
  import org.eclipse.swt.widgets.Label.
  import org.eclipse.swt.widgets.Text.
  import org.eclipse.swt.widgets.*.
  import org.eclipse.swt.events.SelectionAdapter.
  import org.eclipse.swt.events.SelectionEvent.
  public class AddressBookUI {
  private Shell shell.
  private Text miscText.
  private Text addrText.
  private Text emailText.
  private Text phoneText.
  private Text lnameText.
  private Text fnameText.
  private Button cancelButton.
  private Button saveButton.
  private Button nextButton.
  private Button prevButton.
  private Button editButton.
  private Button 0deleteButton.
  private Button newButton.


相关文章


用Python创建Java类
Windows下DLL编程技术及应用
在Java中使用方法重载
蔡学镛谈“Linux Java会得到什么”
Ecli e3.0的swt编程
使用Jbulider开发J2ME移动游戏程序
细述Java技术开发规则--开发篇
从 M精神来看Emaker平台的价值
运用JakartaStruts的七大实战心法
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛