亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? abstractcomponentaddon.java

?? java swing控件
?? JAVA
字號:
/*
 * $Id: AbstractComponentAddon.java,v 1.2 2006/03/25 14:56:14 l2fprod Exp $
 *
 * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
 * Santa Clara, California 95054, U.S.A. All rights reserved.
 */
package com.l2fprod.common.swing.plaf;

import com.l2fprod.common.swing.plaf.aqua.AquaLookAndFeelAddons;
import com.l2fprod.common.swing.plaf.metal.MetalLookAndFeelAddons;
import com.l2fprod.common.swing.plaf.motif.MotifLookAndFeelAddons;
import com.l2fprod.common.swing.plaf.windows.WindowsLookAndFeelAddons;

import java.awt.Color;
import java.awt.Font;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.ResourceBundle;

import javax.swing.UIManager;

/**
 * Ease the work of creating an addon for a component.<br>
 * 
 * @author Frederic Lavigne
 */
public abstract class AbstractComponentAddon implements ComponentAddon {

  private String name;
  
  protected AbstractComponentAddon(String name) {
    this.name = name;
  }
  
  public final String getName() {
    return name;
  }

  public void initialize(LookAndFeelAddons addon) {
    addon.loadDefaults(getDefaults(addon));
  }

  public void uninitialize(LookAndFeelAddons addon) {
    addon.unloadDefaults(getDefaults(addon));
  }

  /**
   * Adds default key/value pairs to the given list.
   * 
   * @param addon
   * @param defaults
   */
  protected void addBasicDefaults(LookAndFeelAddons addon, List defaults) {
  }

  /**
   * Default implementation calls {@link #addBasicDefaults(LookAndFeelAddons, List)}
   * 
   * @param addon
   * @param defaults
   */
  protected void addMacDefaults(LookAndFeelAddons addon, List defaults) {
    addBasicDefaults(addon, defaults);
  }

  /**
   * Default implementation calls {@link #addBasicDefaults(LookAndFeelAddons, List)}
   * 
   * @param addon
   * @param defaults
   */
  protected void addMetalDefaults(LookAndFeelAddons addon, List defaults) {
    addBasicDefaults(addon, defaults);
  }
  
  /**
   * Default implementation calls {@link #addBasicDefaults(LookAndFeelAddons, List)}
   * 
   * @param addon
   * @param defaults
   */
  protected void addMotifDefaults(LookAndFeelAddons addon, List defaults) {
    addBasicDefaults(addon, defaults);
  }

  /**
   * Default implementation calls {@link #addBasicDefaults(LookAndFeelAddons, List)}
   * 
   * @param addon
   * @param defaults
   */
  protected void addWindowsDefaults(LookAndFeelAddons addon, List defaults) {
    addBasicDefaults(addon, defaults);
  }
    
  /**
   * Gets the defaults for the given addon.
   * 
   * Based on the addon, it calls
   * {@link #addMacDefaults(LookAndFeelAddons, List)} if isMac()
   * or
   * {@link #addMetalDefaults(LookAndFeelAddons, List)} if isMetal()
   * or
   * {@link #addMotifDefaults(LookAndFeelAddons, List)} if isMotif()
   * or
   * {@link #addWindowsDefaults(LookAndFeelAddons, List)} if isWindows()
   * or
   * {@link #addBasicDefaults(LookAndFeelAddons, List)} if none of the above was called.
   * @param addon
   * @return an array of key/value pairs. For example:
   * <pre>
   * Object[] uiDefaults = {
   *   "Font", new Font("Dialog", Font.BOLD, 12),
   *   "Color", Color.red,
   *   "five", new Integer(5)
   * };
   * </pre>
   */
  private Object[] getDefaults(LookAndFeelAddons addon) {
    List defaults = new ArrayList();
    if (isWindows(addon)) {
      addWindowsDefaults(addon, defaults);
    } else if (isMetal(addon)) {
      addMetalDefaults(addon, defaults);
    } else if (isMac(addon)) {
      addMacDefaults(addon, defaults);
    } else if (isMotif(addon)) {
      addMotifDefaults(addon, defaults);
    } else {
      // at least add basic defaults
      addBasicDefaults(addon, defaults);
    }
    return defaults.toArray();
  }

  //
  // Helper methods to make ComponentAddon developer life easier
  //

  /**
   * Adds the all keys/values from the given named resource bundle to the
   * defaults
   */
  protected void addResource(List defaults, String bundleName) {
    ResourceBundle bundle = ResourceBundle.getBundle(bundleName);
    for (Enumeration keys = bundle.getKeys(); keys.hasMoreElements(); ) {
      String key = (String)keys.nextElement();      
      defaults.add(key);
      defaults.add(bundle.getObject(key));
    }
  }
  
  /**
   * @return true if the addon is the Windows addon or its subclasses
   */
  protected boolean isWindows(LookAndFeelAddons addon) {
    return addon instanceof WindowsLookAndFeelAddons;
  }
  
  /**
   * @return true if the addon is the Metal addon or its subclasses
   */
  protected boolean isMetal(LookAndFeelAddons addon) {
    return addon instanceof MetalLookAndFeelAddons;
  }
  
  /**
   * @return true if the addon is the Aqua addon or its subclasses
   */
  protected boolean isMac(LookAndFeelAddons addon) {
    return addon instanceof AquaLookAndFeelAddons;
  }
  
  /**
   * @return true if the addon is the Motif addon or its subclasses
   */
  protected boolean isMotif(LookAndFeelAddons addon) {
    return addon instanceof MotifLookAndFeelAddons;
  }

  /**
   * @return true if the current look and feel is one of JGoodies Plastic l&fs
   */
  protected boolean isPlastic() {
    return UIManager.getLookAndFeel().getClass().getName().indexOf("Plastic") != -1;
  }

  /**
   * @return true if the current look and feel is Synth l&f
   */
  protected boolean isSynth() {
    return UIManager.getLookAndFeel().getClass().getName().indexOf("ynth") != -1;    
  }

  protected Font getFont(String key, Font defaultFont) {
    Font result = UIManager.getFont(key);
    return result != null?result:defaultFont;
  }

  protected Color getColor(String key, Color defaultColor) {
    Color result = UIManager.getColor(key);
    return result != null?result:defaultColor;
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄网站免费久久| 欧美午夜精品一区| 色综合天天综合网国产成人综合天 | 一区二区三区蜜桃| 午夜影视日本亚洲欧洲精品| 美国毛片一区二区三区| 国产成人8x视频一区二区| 色综合中文字幕国产 | 一区二区三区四区不卡在线| 日韩精品一区第一页| 国产综合色在线视频区| 99热国产精品| 91精品国产综合久久精品app| 欧美成人bangbros| 中文字幕人成不卡一区| 午夜一区二区三区视频| 国产老肥熟一区二区三区| 91福利视频网站| 欧美精品一区二区三区蜜桃视频| 亚洲欧美日韩国产成人精品影院| 天天影视网天天综合色在线播放| 国产精品一区三区| 欧美视频在线不卡| 国产亚洲美州欧州综合国| 亚洲一区在线看| 成人一级黄色片| 91精品国产免费| 亚洲老妇xxxxxx| 国产精品1024久久| 欧美另类z0zxhd电影| 国产精品三级久久久久三级| 日本欧美加勒比视频| 色综合久久中文综合久久97| 欧美成人官网二区| 亚洲国产成人tv| 99re这里只有精品6| 久久先锋资源网| 日韩 欧美一区二区三区| 色综合久久66| 国产精品久久久久久久久久久免费看| 蜜臀久久99精品久久久久宅男| 一本大道久久a久久精二百| 久久久久一区二区三区四区| 日韩精彩视频在线观看| 色欧美片视频在线观看| 国产日产精品1区| 久久国产生活片100| 欧美日韩不卡在线| 亚洲精选视频在线| av成人动漫在线观看| 26uuu精品一区二区在线观看| 天堂午夜影视日韩欧美一区二区| 色哟哟亚洲精品| 亚洲天堂免费看| 懂色av中文一区二区三区 | 国产在线精品一区二区三区不卡| 欧美日韩在线播放三区四区| 日韩理论片中文av| 国产福利一区在线| 日韩欧美专区在线| 亚洲五月六月丁香激情| 99久久久久久| 国产三级精品视频| 国产麻豆成人传媒免费观看| 欧美久久高跟鞋激| 亚洲国产精品一区二区久久 | 亚洲欧洲精品一区二区三区| 国产在线精品视频| 久久综合九色欧美综合狠狠| 成人91在线观看| 国产亚洲一二三区| 久久9热精品视频| 日韩欧美视频一区| 视频一区视频二区在线观看| 成人美女在线观看| 欧美国产在线观看| 天堂一区二区在线| 在线综合+亚洲+欧美中文字幕| 亚洲综合色丁香婷婷六月图片| a4yy欧美一区二区三区| 国产精品你懂的在线欣赏| 日韩理论片在线| 91国产丝袜在线播放| 亚洲视频狠狠干| 欧美在线不卡一区| 亚洲精品中文在线影院| 欧美亚洲国产bt| 一区二区免费看| 欧美日韩精品一区二区天天拍小说 | 国产精品初高中害羞小美女文| 国产成人精品午夜视频免费 | 蜜桃av一区二区在线观看| 欧美性色综合网| 天涯成人国产亚洲精品一区av| 欧美日韩精品欧美日韩精品一综合| 性久久久久久久久久久久| 欧美日韩精品欧美日韩精品一综合| 偷偷要91色婷婷| 日韩一区二区三区在线| 国产精一区二区三区| 日本一区二区三区在线观看| av成人动漫在线观看| 亚洲激情在线播放| 337p亚洲精品色噜噜噜| 美女一区二区久久| 国产女同性恋一区二区| 粉嫩av一区二区三区粉嫩| 亚洲精品欧美专区| 欧美日韩电影在线| 国产综合一区二区| 亚洲欧美在线高清| 欧美另类videos死尸| 激情综合色综合久久| 国产精品网站一区| 色婷婷综合久久久久中文一区二区 | 精品国产百合女同互慰| 国产精品一品二品| 一区二区三区精品在线| 欧美一区三区二区| 成人av电影在线观看| 一级日本不卡的影视| 欧美不卡视频一区| 波多野结衣在线aⅴ中文字幕不卡| 亚洲国产精品一区二区www | 国产精品女人毛片| 欧美精品第一页| 国产.欧美.日韩| 三级成人在线视频| 久久久一区二区| 欧美四级电影网| 久久99九九99精品| 一区二区三区精品久久久| 日韩一二在线观看| 色综合色狠狠综合色| 日日夜夜一区二区| 中文字幕亚洲一区二区va在线| 欧美日韩你懂的| 9i看片成人免费高清| 亚洲成av人**亚洲成av**| 日本一区二区成人| 欧美在线你懂的| va亚洲va日韩不卡在线观看| 亚洲va中文字幕| **网站欧美大片在线观看| 日韩欧美在线观看一区二区三区| 99久久精品国产麻豆演员表| 精品影视av免费| 一区二区三区精品| 中文字幕一区二区不卡| 91精品国产综合久久福利软件 | 精品免费日韩av| 91黄色在线观看| 99精品视频免费在线观看| 男男视频亚洲欧美| 亚洲www啪成人一区二区麻豆| 久久午夜羞羞影院免费观看| 欧美高清视频不卡网| 国产91高潮流白浆在线麻豆 | 日韩欧美在线影院| 欧美日韩亚洲综合在线 | 欧美午夜视频网站| 91丨porny丨蝌蚪视频| 国产真实乱子伦精品视频| 日本美女一区二区三区| 亚洲免费色视频| 亚洲色图制服丝袜| 精品国产乱码久久久久久牛牛 | 亚洲女人小视频在线观看| 中文字幕欧美日本乱码一线二线| 色婷婷av一区二区三区软件 | 色综合天天天天做夜夜夜夜做| 国产精品一级二级三级| 青娱乐精品视频| 三级欧美韩日大片在线看| 国产精品污www在线观看| 精品sm在线观看| 337p亚洲精品色噜噜狠狠| 粗大黑人巨茎大战欧美成人| 麻豆精品国产传媒mv男同| 三级欧美韩日大片在线看| 亚洲一二三四在线观看| 欧美高清在线视频| 久久免费看少妇高潮| 久久在线免费观看| 欧美电影免费观看完整版| 日韩免费高清电影| 91精品国产综合久久久久久久| 欧美三区在线观看| 色8久久精品久久久久久蜜| 一本色道久久综合亚洲91| 国产精品一卡二卡在线观看| 丁香婷婷综合色啪| 免费视频一区二区| 激情欧美日韩一区二区| 国产乱子轮精品视频| 国产黄色成人av| 国产成人在线看| 国产成a人无v码亚洲福利| 95精品视频在线| 92精品国产成人观看免费|