要改變Swing默認(rèn)的LookAndFeel,網(wǎng)上都說(shuō)用UIManager下的一個(gè)靜態(tài)方法setLookAndFeel即可,但是我用了這個(gè)方法有半年的時(shí)間也沒(méi)有看到真正的WindowsLookAndFeel。昨天網(wǎng)上無(wú)意中才看到正解,要設(shè)置LookAndFeel,不僅要調(diào)用上面提到的方法,還要調(diào)用一個(gè)SwingUtilities類中的靜態(tài)方法updateComponentTreeUI。即
try{
javax.swing.UIManager.setLookAndFeel(new com.sun.java.swing.plaf.windows.WindowsLookAndFeel());
javax.swing.SwingUtilities.updateComponentTreeUI(this);
}catch(javax.swing.UnsupportedLookAndFeelException e){
e.printStackTrace();
}
后者在運(yùn)行時(shí)對(duì)整個(gè)ComponentTree進(jìn)行更新,應(yīng)用當(dāng)前的UI設(shè)置。
public static void setLookAndFeel(String className, java.awt.Component c) {
try {
UIManager.setLookAndFeel(className);
SwingUtilities.updateComponentTreeUI(c);//注意這行
}
catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null,
"不好意思,setLookAndFeel時(shí)出錯(cuò)了:( Errormsg:" + ex,
"setLookAndFeel",
JOptionPane.INFORMATION_MESSAGE);
}
|