weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數據加載中……

          使用SWT開發基于Java的圖形用戶界面

            SWT(Standard Widget Toolkit)是IBM推出的“基于java”的圖形界面開發庫,我之所以說它是“基于java”的意思是程序員編寫代碼的時候是使用java語言,事實上SWT的底層實現是C語言完成的。但是這些對程序員是透明的。

            我們使用SWT開發GUI程序的時候,直接用SWT API來寫。事實上很多java的代碼是通過JNI去掉用C代碼來實現的。針對不同的平臺每個類有不同的實現方式,這篇文章的目的不在于講述SWT的設計原理,如果你對這些感興趣的話可以參考http://www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html。

            下面開始介紹如何使用SWT,首先我假設你已經安裝了Eclipse3.0,當然其他的版本也可以,如果還沒有的話從www.eclipse.org上去下載

            運行Eclipse,切換到java透視圖下面,從Package explore里面新建一個java project。名稱為Test。

            在Libraries里面選擇Add external JARs來添加運行SWT所需要的類庫,這個和系統相關的,比如我在windows xp下,地址為:D:\eclipse\plugins\org.eclipse.swt.win32_3.0.0\ws\win32\swt.jar。把它添加進來,建議做一個variables指向這個swt.jar文件,以后直接添加variables就可以了。

            編寫java代碼,例如

          import org.eclipse.swt.widgets.*;
          import org.eclipse.swt.*;
          public class SWTHello {
           public static void main(String[] args) {
            Display display = new Display();
            Shell shell = new Shell(display);
            Label label = new Label(shell, SWT.NONE);
            label.setText("Hello, World!");
            shell.pack();
            label.pack();
            shell.open();
            while(!shell.isDisposed())
             if(!display.readAndDispatch())
              display.sleep();
              display.dispose();
              label.dispose();
           }
          }

            配置運行環境,由于SWT程序運行的時候要用到本機資源,如果你現在運行上面的程序的時候會出現錯誤,類似于java.lang.UnsatisfiedLinkError: no swt-win32-2133 in java.library.path”,因此你必須指定所需的DLL的位置,具體做法是:從菜單run->run切換到運行配置界面,選擇Arguments在VM Arguments里面寫入-Djava.library.path=例如在我的機器上DLL的地址為D:\eclipse\plugins\org.eclipse.swt.win32_3.0.0\os\win32\x86。這樣每次運行都要配置顯得有點麻煩,所以建議你在環境變量PATH里面添加這個包括DLL的路徑。

            運行程序,你會看到你的第一程序的效果 :) 我的感覺是挺不錯的,速度要比Swing/AWT快。

            關于如何使用SWT,請參考www.eclipse.org上面的相關文章,多看看AWT API,多寫一些代碼!



          轉自:http://tech.sina.com.cn/s/2005-02-18/0946529191.shtml

          posted on 2005-05-24 21:23 weidagang2046 閱讀(228) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 江阴市| 武邑县| 开原市| 钦州市| 陆河县| 德清县| 康乐县| 固安县| 安仁县| 吉隆县| 隆化县| 中阳县| 邵东县| 永平县| 乌兰察布市| 贵州省| 葵青区| 孟村| 新绛县| 华亭县| 高邑县| 玛纳斯县| 隆化县| 勐海县| 永兴县| 鲜城| 阳山县| 静安区| 普安县| 德江县| 安泽县| 九龙坡区| 勃利县| 兴海县| 磐安县| 咸丰县| 都江堰市| 宁夏| 临武县| 贞丰县| 聂拉木县|