1 31 32 package org.antlr.xjlib.appkit.swing; 33 34 import javax.swing.*; 35 import java.awt.*; 36 37 public class XJLookAndFeel { 38 39 public static String applyLookAndFeel(String name) { 40 String className = getLookAndFeelClassName(name); 41 if(className == null) { 42 System.err.println("No LAF class name for name '"+name+"', using default LAF."); 43 className = getLookAndFeelClassName(null); 44 } 45 46 try { 47 UIManager.setLookAndFeel(className); 48 } catch (Exception e) { 49 e.printStackTrace(); 50 } 51 52 Frame[] frame = Frame.getFrames(); 53 for (Frame aFrame : frame) { 54 SwingUtilities.updateComponentTreeUI(aFrame); 55 aFrame.pack(); 56 } 57 58 return getLookAndFeelName(className); 59 } 60 61 public static String getLookAndFeelClassName(String name) { 62 if(name == null) 63 return UIManager.getSystemLookAndFeelClassName(); 64 65 UIManager.LookAndFeelInfo[] info = UIManager.getInstalledLookAndFeels(); 66 for (UIManager.LookAndFeelInfo anInfo : info) { 67 if (anInfo.getName().equalsIgnoreCase(name)) 68 return anInfo.getClassName(); 69 } 70 return null; 71 } 72 73 public static String getLookAndFeelName(String className) { 74 UIManager.LookAndFeelInfo[] info = UIManager.getInstalledLookAndFeels(); 75 for (UIManager.LookAndFeelInfo anInfo : info) { 76 if (anInfo.getClassName().equalsIgnoreCase(className)) 77 return anInfo.getName(); 78 } 79 return null; 80 } 81 82 public static String getDefaultLookAndFeelName() { 83 String name = UIManager.getSystemLookAndFeelClassName(); 84 UIManager.LookAndFeelInfo[] info = UIManager.getInstalledLookAndFeels(); 85 for (UIManager.LookAndFeelInfo anInfo : info) { 86 if (anInfo.getClassName().equalsIgnoreCase(name)) 87 return anInfo.getName(); 88 } 89 return name; 90 } 91 92 } 93 | Popular Tags |