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包中, 参考代码如下:
1 publicvoid actionPerformed(ActionEvent e) { 2 String lnfName =null; 3 if (e.getActionCommand().equals("Metal")) { 4 lnfName ="javax.swing.plaf.metal.MetalLookAndFeel"; 5 } 6 elseif (e.getActionCommand().equals("Motif")) { 7 lnfName ="com.sun.java.swing.plaf.motif.MotifLookAndFeel"; 8 } 9 else{ 10 lnfName ="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; 11 } 12 try{ 13 UIManager.setLookAndFeel(lnfName); 14 SwingUtilities.updateComponentTreeUI(frame); 15 }catch (UnsupportedLookAndFeelException ex1) { 16 System.err.println("Unsupported LookAndFeel: "+ lnfName); 17 }catch (ClassNotFoundException ex2) { 18 System.err.println("LookAndFeel class not found: "+ lnfName); 19 }catch (InstantiationException ex3) { 20 System.err.println("Could not load LookAndFeel: "+ lnfName); 21 }catch (IllegalAccessException ex4) { 22 System.err.println("Cannot use LookAndFeel: "+ lnfName); 23 } 24 }
浙公网安备 33010602011771号