Eclipse中如何配置SWT

Posted 海枫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eclipse中如何配置SWT相关的知识,希望对你有一定的参考价值。

    SWT类似于JDK的AWT/Swing,它依赖本机操作系统GUI控件的实现,以创建Java版的GUI控件。SWT与AWT/Swing的不同之处是SWT使用了许多本机窗口小部件,这是SWT(标准小窗口工具箱)得名之故。

    由于窗口小部件系统与生俱来的复杂性以及不同系统之间的差别,即使在理想情况下,要实现和维护平台的窗口小部件库也是很难的。目前,有几种技术能够明显减少问题的复杂度,SWT库采用了这些技术中的底层实现技术。Eclipse提供的SWT使用JNI调用操作系统的内部API,所以能够实现与本机应用程序相同外观。不仅如此,SWT还可以在Java方法的操系统的调用之间建立一对一的对应关系。事实上这也是SWT取得成功的最重要因素之一。

 

    下面是在Eclipse中使用SWT的配置过程:

    第一步:无论是新建项目还是已有的项目,使用SWT只需要项目中加入SWT库即可。方法是在项目属性中的Libraries添加文件 /eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.1.1.jar 

   上面的当前目录的Eclpse的安装目录。

   第二步:找到目录eclipse/configuration/org.eclipse.osgi/bundles/5/1/.cp,拷文件swt-win32-3139.dll到c:/windows/system32下即可。

  完成以上两步后即可在Eclipse下开始SWT应用程序了,下面是一个SWT的例子,摘自《Eclipse编程技术与实例》一书P268中,代码如下:

 

import  org.eclipse.swt.SWT;
import  org.eclipse.swt.widgets. * ;
    
public   class  MyLabel  {

    
private Label myLabel;
    
private Shell shell;
    
private Display display;
    
    
public MyLabel()
    
{
        
super();
        display 
= new Display();
        
        shell 
= new Shell(display);
        
        shell.setSize(
200,200);
        myLabel 
= new Label(shell, SWT.NONE);
        myLabel.setBounds(
38,21,100,18);
        myLabel.setText(
"Hello, World!");
    }

    
    
public void start()
    
{
        shell.open();
        
while(!shell.isDisposed())
        
{
            
if(!display.readAndDispatch())
            
{
                display.sleep();
            }

        }

    }

    
    
public static void main(String[] args) {
        MyLabel label 
= new MyLabel();
        label.start();

    }


}

运行一下即行看到一个窗口,与window的应用程序长得一模一样,呵呵!

当然,如果不在Eclipse下采用SWT进行开发也是可以的。方法也是与上面一样,添加相应的.jar到classpath指定的目录中,或当前项目的lib目录下,同时要把相应的.dll文件拷贝到c:/windows/system32/目录下。不同的是要下载一个SWT库即可。

本文中Eclispe版本为3.1.1

以上是关于Eclipse中如何配置SWT的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse swt开发环境搭建

在eclipse3.6(Helios)环境下SWT—Designer的安装,最好详细一点

eclipse 如何安装 swt?

如何在 Eclipse 中创建一个包含 SWT 组件的视图?

如何避免 org.eclipse.swt.SWTException: Invalid thread access

如何验证 java swt text中输入的时间格式是不是正确