Java 圖形介面經歷了三次重大架構演進:AWT 1.0 → AWT 1.1 (事件模型 + Bean) → Swing/JFC。本文梳理脈絡,說明每階段解決的核心痛點。
| 階段 | 版本 | 核心特性 | 缺憾 |
|---|---|---|---|
| AWT 1.0 | JDK 1.0 | Peer-based,對應原生 OS 元件 | 外觀不一、功能貧乏、事件模型笨重 (handleEvent) |
| AWT 1.1 | JDK 1.1 | 委派事件模型、JavaBeans、可序列化 | 元件仍輕量級但外觀受限、無進階元件 (表格、樹) |
| Swing/JFC | JDK 1.2+ | 全純 Java 繪製、可插入外觀、豐富元件 (JTable, JTree, JTabbedPane...) | 早期效能較差、記憶體佔用大 |
get/set/is、add/removeListener),使視覺化建構工具 (Visual Café, JBuilder, NetBeans Matisse) 能自動識別屬性/事件。UIManager、LookAndFeel 實現運行時換膚。JTable 用 TableModel、JTree 用 TreeModel,資料與呈現解耦。理解歷史演進,有助於在遺留系統維護、技術選型、架構現代化決策中做出理性判斷。