Java GUI 程式設計建立在抽象視窗工具箱(AWT)之上,java.awt 套件提供豐富的圖形、元件與版面管理器支援。GUI 主要應用於獨立應用程式與 Applet 兩大場景。
核心概念
- GUI 介面:使用者與程式互動的控制面板,包含選單、元件、容器並能響應事件
- 跨平台挑戰:不同作業系統(Windows SDK、X Window Xlib)提供的原生 GUI 函式庫差異極大
- AWT 解決方案:Java 提出「抽象視窗系統」概念,由目標平台 OS 解釋具體實作,實現「一次編寫,到處執行」
AWT 關鍵特性
- 外觀隨平台變化:視窗、字型渲染由底層 OS 決定,同一程式在不同平台外觀不一
- 相對定位原則:嚴禁使用絕對座標,必須透過版面管理器實現與平台無關的相對佈局
Swing:輕量級元件的補強
AWT 元件(重量級)功能有限,Sun 在 Java 2 引入 Swing(輕量級):
- 純 Java 實作,不依賴原生同儕元件,跨平台外觀一致
- 提供更豐富的元件(表格、樹、標籤頁等)與可換裝外觀
- 採用 MVC 架構,資料與視圖分離
雖然 Swing 功能更強,但 AWT 因簡單易用、Applet 相容性好,仍在教學與輕量級應用中廣泛使用。掌握 AWT 基礎有助於深入學習 Swing。
學習路徑建議
- 理解事件委派模型(事件源、監聽器、事件物件)
- 熟悉核心容器與元件類別
- 精通版面管理器
- 實作簡單應用鞏固
- 進階學習 Swing 進階元件與客製化繪圖