Java中的LookAndFeel

Java'中的几种Look and Feel
1、Metal风格 (默认)
String lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);

2、Windows风格
String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);

3、Windows Classic风格
String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);

4、Motif风格
String lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);

5、Mac风格 (需要在相关的操作系统上方可实现)
String lookAndFeel = "com.sun.java.swing.plaf.mac.MacLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);

6、GTK风格 (需要在相关的操作系统上方可实现)
String lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);

7、可跨平台的默认风格
String lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);

8、当前系统的风格
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);


在Java中让用户能够动态地更改应用的外观,可以给用户更好地体验,具体的实现方式是:
1,先使用UIManager.setLookAndFeel(String s)方法设定对应的外观
2,再使用SwingUtilities.updateComponentTreeUI(Component c)方法立刻更新应用的外观
这两个类均在javax.swing包中

参考代码如下:
 1public void actionPerformed(ActionEvent e) {
 2    String lnfName = null;
 3    if (e.getActionCommand().equals("Metal")) {
 4        lnfName = "javax.swing.plaf.metal.MetalLookAndFeel";
 5    }
 else if (e.getActionCommand().equals("Motif")) {
 6        lnfName = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
 7    }
 else {
 8        lnfName = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
 9    }

10    try {
11        UIManager.setLookAndFeel(lnfName);
12        SwingUtilities.updateComponentTreeUI(frame);
13    }
 catch (UnsupportedLookAndFeelException ex1) {
14        System.err.println("Unsupported LookAndFeel: " + lnfName);
15    }
 catch (ClassNotFoundException ex2) {
16        System.err.println("LookAndFeel class not found: " + lnfName);
17    }
 catch (InstantiationException ex3) {
18        System.err.println("Could not load LookAndFeel: " + lnfName);
19    }
 catch (IllegalAccessException ex4) {
20        System.err.println("Cannot use LookAndFeel: " + lnfName);
21    }

22}

posted @ 2008-06-30 14:39  念月思灵  阅读(8559)  评论(0编辑  收藏  举报