開發(fā)基于Java的圖形用戶界面
更新時(shí)間:2006年10月13日 00:00:00 作者:
SWT(Standard Widget Toolkit)是IBM推出的“基于java”的圖形界面開發(fā)庫(kù),我之所以說它是“基于java”的意思是程序員編寫代碼的時(shí)候是使用java語(yǔ)言,事實(shí)上SWT的底層實(shí)現(xiàn)是C語(yǔ)言完成的。但是這些對(duì)程序員是透明的。
我們使用SWT開發(fā)GUI程序的時(shí)候,直接用SWT API來(lái)寫。事實(shí)上很多java的代碼是通過JNI去掉用C代碼來(lái)實(shí)現(xiàn)的。針對(duì)不同的平臺(tái)每個(gè)類有不同的實(shí)現(xiàn)方式,這篇文章的目的不在于講述SWT的設(shè)計(jì)原理,如果你對(duì)這些感興趣的話可以參考http://www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html。
下面開始介紹如何使用SWT,首先我假設(shè)你已經(jīng)安裝了Eclipse3.0,當(dāng)然其他的版本也可以,如果還沒有的話從www.eclipse.org上去下載。
運(yùn)行Eclipse,切換到j(luò)ava透視圖下面,從Package explore里面新建一個(gè)java project。名稱為Test。
在Libraries里面選擇Add external JARs來(lái)添加運(yùn)行SWT所需要的類庫(kù),這個(gè)和系統(tǒng)相關(guān)的,比如我在windows xp下,地址為:D:eclipsepluginsorg.eclipse.swt.win32_3.0.0wswin32swt.jar。把它添加進(jìn)來(lái),建議做一個(gè)variables指向這個(gè)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();
}
}
配置運(yùn)行環(huán)境,由于SWT程序運(yùn)行的時(shí)候要用到本機(jī)資源,如果你現(xiàn)在運(yùn)行上面的程序的時(shí)候會(huì)出現(xiàn)錯(cuò)誤,類似于java.lang.UnsatisfiedLinkError: no swt-win32-2133 in java.library.path”,因此你必須指定所需的DLL的位置,具體做法是:從菜單run->run切換到運(yùn)行配置界面,選擇Arguments在VM Arguments里面寫入-Djava.library.path=例如在我的機(jī)器上DLL的地址為D:eclipsepluginsorg.eclipse.swt.win32_3.0.0oswin32。這樣每次運(yùn)行都要配置顯得有點(diǎn)麻煩,所以建議你在環(huán)境變量PATH里面添加這個(gè)包括DLL的路徑。
運(yùn)行程序,你會(huì)看到你的第一程序的效果 :) 我的感覺是挺不錯(cuò)的,速度要比Swing/AWT快。
關(guān)于如何使用SWT,請(qǐng)參考www.eclipse.org上面的相關(guān)文章,多看看AWT API,多寫一些代碼!
我們使用SWT開發(fā)GUI程序的時(shí)候,直接用SWT API來(lái)寫。事實(shí)上很多java的代碼是通過JNI去掉用C代碼來(lái)實(shí)現(xiàn)的。針對(duì)不同的平臺(tái)每個(gè)類有不同的實(shí)現(xiàn)方式,這篇文章的目的不在于講述SWT的設(shè)計(jì)原理,如果你對(duì)這些感興趣的話可以參考http://www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html。
下面開始介紹如何使用SWT,首先我假設(shè)你已經(jīng)安裝了Eclipse3.0,當(dāng)然其他的版本也可以,如果還沒有的話從www.eclipse.org上去下載。
運(yùn)行Eclipse,切換到j(luò)ava透視圖下面,從Package explore里面新建一個(gè)java project。名稱為Test。
在Libraries里面選擇Add external JARs來(lái)添加運(yùn)行SWT所需要的類庫(kù),這個(gè)和系統(tǒng)相關(guān)的,比如我在windows xp下,地址為:D:eclipsepluginsorg.eclipse.swt.win32_3.0.0wswin32swt.jar。把它添加進(jìn)來(lái),建議做一個(gè)variables指向這個(gè)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();
}
}
配置運(yùn)行環(huán)境,由于SWT程序運(yùn)行的時(shí)候要用到本機(jī)資源,如果你現(xiàn)在運(yùn)行上面的程序的時(shí)候會(huì)出現(xiàn)錯(cuò)誤,類似于java.lang.UnsatisfiedLinkError: no swt-win32-2133 in java.library.path”,因此你必須指定所需的DLL的位置,具體做法是:從菜單run->run切換到運(yùn)行配置界面,選擇Arguments在VM Arguments里面寫入-Djava.library.path=
運(yùn)行程序,你會(huì)看到你的第一程序的效果 :) 我的感覺是挺不錯(cuò)的,速度要比Swing/AWT快。
關(guān)于如何使用SWT,請(qǐng)參考www.eclipse.org上面的相關(guān)文章,多看看AWT API,多寫一些代碼!
相關(guān)文章
JSP上傳圖片產(chǎn)生 java.io.IOException: Stream closed異常解決方法
在做jsp上傳圖片時(shí),把java代碼直接改成 jsp,上傳時(shí)產(chǎn)生異常,很是疑惑,于是搜索整理了一下解決方法,需要了解的朋友可以參考下2012-12-12
JAVA (Jsp)利用Google的Translate開發(fā)API的代碼
上次我說了用ASP,PHP,C#分別實(shí)現(xiàn)Google的Translate開發(fā)一個(gè)API ( Tags:Google Translate API )2008-12-12
JavaWeb Servlet中url-pattern的使用
這篇文章主要介紹了JavaWeb Servlet中url-pattern的使用的相關(guān)資料,希望通過本文能幫助到大家,讓大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-10-10
SSH整合中 hibernate托管給Spring得到SessionFactory
Spring文件中的 SessionFactory中 加入為了能得到同一個(gè)Session2009-06-06

