開發基於Java的圖形化使用者介面

來源:互聯網
上載者:User

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:eclipsepluginsorg.eclipse.swt.win32_3.0.0wswin32swt.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:eclipsepluginsorg.eclipse.swt.win32_3.0.0oswin32。這樣每次運行都要配置顯得有點麻煩,所以建議你在環境變數PATH裡面添加這個包括DLL的路徑。

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.