posts - 72, comments - 19, trackbacks - 0, articles - 0
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.win32.x86_3.1.0.jar库文件。注意这里的“org.eclipse.swt.win32.win32.x86_3.1.0.jar”的文件是和Eclipse的版本有关的。实在找不到你就用文件搜索功能吧。然后依次打开下面窗口Project->Properies->JavaBuildPath->Libraries->Add Variable -> Eclipse Home ->Extend将org.eclipse.swt.win32.win32.x86_3.1.0.jar文件加到类路径中。

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

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


  java.lang.UnsatisfiedLinkError: no swt-win32-3138 in java.library.path
  at java.lang.ClassLoader.loadLibrary(Unknown Source)
  at java.lang.Runtime.loadLibrary0(Unknown Source)
  at java.lang.System.loadLibrary(Unknown Source)
  at org.eclipse.swt.internal.Library.loadLibrary(Library.java:108)
  at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:46)
  at org.eclipse.swt.widgets.Display.internal_new_GC(Display.java:1291)
  at org.eclipse.swt.graphics.Device.init(Device.java:547)
  at org.eclipse.swt.widgets.Display.init(Display.java:1316)
  at org.eclipse.swt.graphics.Device.<init>(Device.java:96)
  at org.eclipse.swt.widgets.Display.<init>(Display.java:291)
  at org.eclipse.swt.widgets.Display.<init>(Display.java:287)
  at com.swtdesigner.trytry.main(trytry.java:24)
  Exception in thread "main" 


  按下面的步骤设置java.library.path变量:依次打开Run-> Run...-> Java Applicaton-> "Project" ->Arguments -> VM Arguments。在“VM Arguments”中输入
只有注册用户登录后才能发表评论。