封装的Swing设置外观的类

来源:互联网 发布:新浪历史分笔数据接口 编辑:程序博客网 时间:2024/05/07 21:07
import javax.swing.SwingUtilities;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;public class UILookAndFeelManager {    public static final String LOOK_AND_FEEL_WINDOWS = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";    public static final String LOOK_AND_FEEL_METAL = "javax.swing.plaf.metal.MetalLookAndFeel";    public static final String LOOK_AND_FEEL_MOTIF = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";    public static final String LOOK_AND_FEEL_NIMBUS = "javax.swing.plaf.nimbus.NimbusLookAndFeel";    public static final String LOOK_AND_FEEL_WINDOWS_CLASSIC = "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel";    private static String currentLookAndFeel = "";    public synchronized static void setLookAndFeel(String lookAndFeel) {        if (lookAndFeel.equals(currentLookAndFeel)) {            return;        }        currentLookAndFeel = lookAndFeel;        try {            UIManager.setLookAndFeel(currentLookAndFeel);        } catch (ClassNotFoundException | InstantiationException                | IllegalAccessException | UnsupportedLookAndFeelException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        SwingUtilities                .updateComponentTreeUI(这里为您的JFrame对象或JApplet对象,自己想办法传过来吧,比如在本类中添加一个静态变量);//这里需要注意的地方是: 如果通过JApplet中的菜单来更改外观,那么这条语句的参数需要为this,但是会提示不能用this作为参数,这也就是为何这里要把更改外观作为单独一个类的原因。    }}

原创粉丝点击