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

SWT/JFace 開發指南:理解 Display 與 Shell——視窗應用的雙核心

     編輯:Java 相關知識

每個 SWT 程式啟動都離不開 Display 與 Shell 兩大核心類。本文從經典 HelloWorld 切入,剖析它們的職責、關鍵 API 及配置技巧。

SWT 程式標準啟動七步曲

  1. 建立 Display 物件
  2. 建立一個或多個 Shell(視窗)
  3. 在 Shell 中建立各類 Widget
  4. 初始化 Widget 外觀、狀態,註冊事件監聽器
  5. 呼叫 shell.open() 顯示視窗
  6. 進入事件迴圈:readAndDispatch() / sleep() 直到視窗銷毀
  7. 呼叫 display.dispose() 釋放資源結束程式

Display:與作業系統溝通的橋樑

  • 單例模式:幾乎所有平台僅支援單一活躍 Display,Javadoc 明確警告勿建立多個。
  • 核心職責:管理 SWT 與 OS 的通訊、事件分發、資源分配、色彩/字體/圖片等裝置資源。
  • 關鍵方法:
    • readAndDispatch():讀取 OS 事件佇列並分發給對應監聽器
    • sleep():無事件時讓執行緒休眠,降低 CPU 佔用
    • getShells():取得關聯且未銷毀的所有 Shell
    • setData/getData():掛載應用層全域資料

Shell:視窗容器與樣式定制

Shell 代表一個頂層視窗,可包含任意控件樹。其外觀行為由樣式位(Style bits)控制,定義於 org.eclipse.swt.SWT:

樣式常量效果
SWT.BORDER邊框
SWT.CLOSE關閉按鈕
SWT.MIN / SWT.MAX最小化/最大化按鈕
SWT.RESIZE可調整大小
SWT.TITLE標題列
SWT.SHELL_TRIM組合:TITLE | CLOSE | MIN | MAX | RESIZE(預設完整視窗)
SWT.NO_TRIM無裝飾(無標題列、邊框、按鈕)
SWT.APPLICATION_MODAL / SYSTEM_MODAL / PRIMARY_MODAL模態層級

樣式組合範例

// 僅有關閉按鈕、不可縮放、系統模態
Shell shell = new Shell(display, SWT.CLOSE | SWT.SYSTEM_MODAL);

注意:樣式為「暗示」,受限於底層視窗管理器,不保證所有平台完全一致。

Shell 常用操作

  • open() / close():顯示/關閉
  • setVisible(boolean) / setEnabled(boolean):可見/啟用
  • setActive():設為活躍視窗
  • pack():依佈局與子控件首選尺寸自動調整視窗大小
  • setText(String):設定標題

理解 Display 與 Shell 的分工協作,是掌握 SWT 視窗程式設計的第一步。接著我們將探索佈局管理器,實現彈性自適應介面。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved