Swing 提供超過 100 種元件,本文彙整書中未詳細介紹但極具實用價值的進階組件,附上典型應用場景與關鍵 API。
| 元件 | 用途 | 關鍵方法/特性 |
|---|---|---|
JColorChooser | 顏色選取對話框 | showDialog()、getSelectionModel()、支援自訂預覽面板 |
JFileChooser | 檔案/目錄選取對話框 | showOpenDialog()、setFileFilter()、多選模式、預覽配件 |
JPasswordField | 密碼輸入欄位 | getPassword() 回傳 char[]、回顯字元可設定、支援剪貼板限制 |
JEditorPane | 簡易 HTML/RTF 顯示 | setContentType("text/html")、setPage(URL)、可編輯模式 |
JTextPane | 富文本編輯器 | StyledDocument、Style、插入圖片/元件、段落屬性 |
DocumentEvent、TableModelEvent、TreeExpansionEvent 等,採用「事件物件攜帶類型資訊」設計,而非靠方法名區分。BoxLayout:單軸堆疊,配合 Box.createGlue/Strut/RigidArea 彈性佈局。SpringLayout / Spring/Strut:類似 CSS Flexbox 的彈性約束系統。JSplitPane 可水平/垂直分割,setDividerLocation()、setResizeWeight() 控制拖曳行為。JDesktopPane + JInternalFrame 實現視窗內視窗。UIManager.setLookAndFeel() 運行時切換 Metal/Nimbus/Windows/Mac OS X 風格;可自訂 LookAndFeel 子類。JToolBar 支援浮動、拖曳停靠、可攜帶 Action 統一命令邏輯。RepaintManager 批次合併重繪區域,預設開啟雙緩衝消除閃爍。UndoManager + AbstractUndoableEdit 幾行代碼即可為文字元件加入無限級撤銷。TransferHandler 統一處理元件間/跨應用程式拖放,支援 DataFlavor 協商格式。JComponent 繼承體系、事件模型、模型介面 (TableModel, ListModel, TreeModel)。