在默认的情况下。Swing程序使用Metal观感,可以采用两种方式改变观感。
•第一种方式是在java安装的子目录jre/lib下有一个文件夹swing.properties。在这个文件中,
将swing.defaultlaf设置为所希望的观感类名
例如:
swing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel
属性文件中以#字符开始的行被忽略,所以可以用#将原来的观感注释掉
注意:采用这种方式改变观感时必须重新启动程序。Swing程序只在启动时读取一次swing.properties文件。
•第二种方式是动态地改变观感,网上也有很多讲到了。这需要调用静态方法UIManager.setLookAndFeel,并提供所想要的观感类名,然后再调用静态方法SwingUtilities.updateComponentTreeUI来刷新全部的组件集。需要向这个方法提供一个组件,并由此找到其他的所有组件。
我们可以调用静态方法UIManager.getInstalledLookAndFeels查看java已经安装了哪些的LookAndFeel,并获取观感的类名和名字。
下面是一个示例代码:
// 列出安装的所有观感
LookAndFeelInfo[] looksinfo = UIManager.getInstalledLookAndFeels();
// 获取观感类名和名字
for(int i = 0; i < looksinfo.length; i++){
String className = looksinfo[i].getClassName();
String name = looksinfo[i].getName();
System.out.println("ClassName: " + className + "\tName: " + name);
}
改变程序的观感也很简单,例如:
String laf = "javax.swing.plaf.nimbus.NimbusLookAndFeel";
try {
UIManager.setLookAndFeel(laf);
SwingUtilities.updateComponentTreeUI(this);
} catch (Exception e) {
e.printStackTrace();
}