genericskin.java

来自「java写的多功能文件编辑器」· Java 代码 · 共 128 行

JAVA
128
字号
/* * 12:00:00 15/12/02 * * GenericSkin.java - A generic Skin implementation, useful for most Look and Feel's. * Copyright (C) 2002 Paolo Giarrusso * blaisorblade_work@yahoo.it * www.jext.org * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */package org.jext.gui;import javax.swing.UIManager;import javax.swing.LookAndFeel;/** * This is a generic skin class which will be able to wrap most possible skin, * actually the normal LookAndFeel's. If you need special processing, write * your own Skin interface implementation or extend this one. */public class GenericSkin extends Skin {  private String name;  private String intName;  protected String lafClassName = null;  protected LookAndFeel laf;  protected ClassLoader skLoader = null;    /**   * Constructor; use it to provide the caption, the internal name and the name of   * the class to use as LookAndFeel(the same you would pass to UIManager.setLookAndFeel).   */  public GenericSkin(String name, String intName, String lafClassName) {    this(name, intName, lafClassName, null);  }  /**   * Constructor; use it to provide the caption, the internal name, the name of   * the class to use as LookAndFeel(the same you would pass to UIManager.setLookAndFeel)   * and the ClassLoader that will be used to load the LookAndFeel and related classes;    * useful especially if you write a plugin.   * In this case pass as classLoader <Your class>.class.getClassLoader(), as KLNF does.   */  public GenericSkin(String name, String intName, String lafClassName, ClassLoader cl) {    this.name = name;    this.intName = intName;    this.lafClassName = lafClassName;    this.skLoader = cl;  }  /**   * Constructor; use it to provide the caption, the internal name and the built    * LookAndFeel instance (the same you would pass to UIManager.setLookAndFeel).   */  public GenericSkin(String name, String intName, LookAndFeel laf) {    this(name, intName, laf, null);  }  /**   * Constructor; use it to provide the caption, the internal name and the built    * LookAndFeel instance (the same you would pass to UIManager.setLookAndFeel).   * This constructor allows you to specify a ClassLoader that will be used to load   * the LookAndFeel and related classes; useful especially if you write a plugin.   * In this case pass as classLoader <Your class>.class.getClassLoader(), as KLNF does.   */  public GenericSkin(String name, String intName, LookAndFeel laf, ClassLoader cl) {    this.name = name;    this.intName = intName;    this.laf = laf;    this.skLoader = cl;  }  /*public void setValues(String name, String intName, String lafClassName, ClassLoader cl) {    built = true;    this.name = name;    this.intName = intName;    this.lafClassName = lafClassName;    this.skLoader = cl;  }*/  /*   * If you extend this class, use this method to pass the value you would pass instead   * to the constructor; note that you can't call it     public void setValues(String name, String intName, String lafClassName) {    built = true;    this.name = name;    this.intName = intName;    this.lafClassName = lafClassName;  }*/  public boolean isAvailable() {    return true;  }  public String getSkinName() {    return name;  }  public String getSkinInternName() {    return intName;  }  /**   * This method applies the skin; if you have not called one of the constructors, it will fail silently.   */  public void apply() throws Throwable {    if (skLoader != null)      UIManager.put("ClassLoader", skLoader);//check this!    if (lafClassName != null)      UIManager.setLookAndFeel(lafClassName);    else      UIManager.setLookAndFeel(laf);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?