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