淺談Swing中的Metal觀感
今天學習了怎樣切換Swing的Metal觀感,感覺還不錯
在默認的情況下,Swing 程序使用Metal觀感,可以采用兩種方法改變觀感。
***種方式是在Java的安裝的子目錄下jre / lib有一個文件swing.properties。在這個文件中,將屬性Swing.defaultlaf設置為所希望的觀感類名。例如:
swing.defaultlaf = com.sun.java.swing.plaf.motif.MotifLookAndFeel
ps:***中方式我怎么也沒找到那個swing.properties,不知大家的如何?
注意,Metal觀感位于Javax.swing包中。其他的觀感包位于com.sun.java包中,并且不是在每個Java實現中都提供。現在,鑒于版權的原因,Windows 和Mac 的觀感包只與Windows和Mac版本的java運行環境一起發布。
提示:下面給出一個測試很有幫助的的建議。由于屬性文件中的以#字符開始的行被忽略,所以,可以在swing.properties文件中提供幾種觀感,并同過增刪#字符來切換選擇:
◆swing.defaultlaf = javax.swing.plaf.metal.MetalLookAndFeel
◆swing.defaultlaf = com.sun.java.swing.plaf.motif.MotifLookAndFeel
◆swing.defaultlaf = com.sun.java.swing.plaf.windows.WindowsLookAndFeel
采用這種方式開啟觀感時必須重新啟動程序。Swing程序只在啟動時讀取一次swing.properties文件。
第二種方式是動態地改變觀感。這需要調用靜態的UIManager.setLookAndFeel方法,并提供所想要的觀感類名,然后再調用靜態方法SwingUtilities.updateComponentTreeUI來刷新全部的組件集。這里需要向這個方法提供一個組件,并由此找到其他的所有組件。當UIManager.setLookAndFeel方法沒有找到所希望的觀感或在加載過程中出現錯誤時,將會拋出異常。
下面是一個例子,他顯示了如何在程序中切換觀感的方式。在這個程序中,這有點需要注意的地方。在內部動作監聽器類的actionPerformed方法中,需要將一個外部的PalfPanel類的this引用傳遞給updateComponentTreeUI方法。
【編輯推薦】