Java 5.0 以 Ocean 取代經典 Steel 成為 Metal Look & Feel 的預設主題。Ocean 並非全新 Look & Feel,而是繼承 MetalTheme 的新主題類 OceanTheme,透過更柔和的配色與按鈕漸變背景,帶來現代化視覺體驗。既有自定義 Metal 主題的應用完全不受影響;欲強制回退 Steel,啟動參數加入 -Dswing.metalTheme=steel 即可。
Synth 是全新的「完整」Look & Feel,面向非程式設計師(UI 設計師),核心理念:外觀定義完全外部化為 XML 文件。無需編寫 Java 代碼繼承現有 Look & Feel,僅需編寫符合 DTD 的 XML,描述組件各狀態(預設、滑鼠懸停、按下等)的字體、顏色、圖片、邊框等屬性,再透過 SynthLookAndFeel.load(InputStream, Class) 載入並 UIManager.setLookAndFeel() 設置。
<synth>
<style id="button">
<font name="Monospaced" size="24" style="BOLD"/>
<state value="MOUSE_OVER">
<font name="Serif" size="48" style="ITALIC"/>
</state>
</style>
<bind style="button" type="region" key="Button"/>
</synth>
style.id 對應 bind.style,bind.key 為 Swing 組件區域名(如 "Button"、"TextField"、"TableHeader" 等)。運行時效果:滑鼠移入按鈕,字體瞬間從 24pt 粗體等寬切換為 48pt 斜體襯線,無需重啟應用。
javax.swing.plaf.synth 包 Javadoc 中的 DTD 文檔,是駕馭 Synth 的關鍵。DefaultMetalTheme 覆寫 getPrimary1/2/3() 仍是最輕量方案。