首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

SWT 界面開發入門實例:Eclipse 3.2 環境配置與 Hello World 完整步驟

     編輯:Java 相關知識

環境準備

  • IDE:Eclipse 3.2 (英文版)
  • SWT 版本:org.eclipse.swt.win32.win32.x86_3.2.0.v3232m.jar (位於 eclipse/plugins/)
  • 原生庫:解壓上述 JAR 取得 swt.dll、swt-win32-3232.dll 等至任意目錄 (如 E:\swt)

專案建立與類別路徑配置

  1. 新建 Java Project:「SWT」
  2. 右鍵專案 → Properties → Java Build Path → Libraries → Add Variable
  3. Configure Variables → New → Name: SWT_LIB → File: 選擇 SWT JAR
  4. 確定返回,SWT_LIB 出現在 Libraries 列表

原生庫路徑設定 (關鍵步驟)

SWT 呼叫作業系統原生圖形庫,需指定 java.library.path:

  1. 右鍵主類別檔案 → Run As → Run Configurations…
  2. 選擇左側 Java Application → New
  3. Arguments 分頁 → VM arguments 輸入:-Djava.library.path=E:\swt (對應解壓目錄)
  4. Apply → Run

Hello SWT 完整代碼

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.SWT;

public class HelloSWT {
    public static void main(String[] args) {
        Display display = new Display();           // 管理事件迴路、原生資源
        Shell shell = new Shell(display);          // 主視窗
        shell.setText("SWT 範例");
        shell.setSize(300, 200);

        Label label = new Label(shell, SWT.CENTER);
        label.setText("Hello, SWT!");
        label.setBounds(50, 70, 200, 30);          // 絕對座標佈局

        shell.open();                              // 顯示視窗
        while (!shell.isDisposed()) {              // 事件迴路
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();                         // 釋放原生資源
    }
}

核心類別職責

常見問題排查

  • UnsatisfiedLinkError: no swt in java.library.path → VM arguments 路徑錯誤或原生 DLL 遺失
  • ClassNotFoundException: org.eclipse.swt.widgets.Display → Build Path 未正確加入 SWT JAR
  • 視窗一閃即逝 → 缺少事件迴路 while (!shell.isDisposed())
  • 中文亂碼 → 確保原始碼儲存為 UTF-8,JVM 參數 -Dfile.encoding=UTF-8

進階學習方向

  1. 佈局管理器:FillLayout, RowLayout, GridLayout, FormLayout
  2. 常用控制項:Button, Text, Combo, Table, Tree, TabFolder
  3. 事件處理:SelectionListener, ModifyListener, PaintListener
  4. JFace 資料綁定:TableViewer, TreeViewer, ContentProvider, LabelProvider
  5. 自訂繪圖:GC (Graphics Context)、PaintEvent

結語

SWT 以原生效能、原生外觀著稱,是 Eclipse IDE、RCP 應用的基石。掌握 Display 事件迴路與 Shell 視窗生命週期,是所有 SWT 開發的起點。建議從手寫 Hello World 開始,逐步遷移至 WindowBuilder 視覺化設計器提升效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類別角色關鍵方法
Display連接平台 GUI 子系統,管理事件佇列、色彩、字體、計時器readAndDispatch(), sleep(), dispose()
Shell頂層視窗容器,支援標題列、選單、最小化/最大化/關閉open(), setSize(), isDisposed()
Label文字/圖示顯示控制項setText(), setBounds()