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

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

?? metalutils.java

?? linux下編程用 編譯軟件
?? JAVA
字號:
/* MetalUtils.javaCopyright (C) 2005 Free Software Foundation, Inc.This file is part of GNU Classpath.GNU Classpath is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU Classpath is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING.  If not, write to theFree Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA02110-1301 USA.Linking this library statically or dynamically with other modules ismaking a combined work based on this library.  Thus, the terms andconditions of the GNU General Public License cover the wholecombination.As a special exception, the copyright holders of this library give youpermission to link this library with independent modules to produce anexecutable, regardless of the license terms of these independentmodules, and to copy and distribute the resulting executable underterms of your choice, provided that you also meet, for each linkedindependent module, the terms and conditions of the license of thatmodule.  An independent module is a module which is not derived fromor based on this library.  If you modify this library, you may extendthis exception to your version of the library, but you are notobligated to do so.  If you do not wish to do so, delete thisexception statement from your version. */package javax.swing.plaf.metal;import java.awt.Color;import java.awt.Component;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.TexturePaint;import java.awt.geom.Rectangle2D;import java.awt.image.BufferedImage;import java.util.List;import javax.swing.SwingConstants;import javax.swing.UIManager;/** * Some utility and helper methods for the Metal Look &amp; Feel. * * @author Roman Kennke (roman@kennke.org) */class MetalUtils{  /**   * The typical metal pattern for use with Graphics2D.   */  static BufferedImage pattern2D;  /**   * The light color to draw the pattern.   */  static Color lightColor;  /**   * The dark color to draw to draw the pattern.   */  static Color darkColor;  /**   * Fills a rectangle with the typical Metal pattern.   *   * @param g the <code>Graphics</code> context to use   * @param x the X coordinate of the upper left corner of the rectangle to   *     fill   * @param y the Y coordinate of the upper left corner of the rectangle to   *     fill   * @param w the width of the rectangle to fill   * @param h the height of the rectangle to fill   * @param light the light color to use   * @param dark the dark color to use   */  static void fillMetalPattern(Component c, Graphics g, int x, int y, int w, int h,                                Color light, Color dark)  {    if (g instanceof Graphics2D)      fillMetalPattern2D((Graphics2D) g, x, y, w, h, light, dark);    else      {        int xOff = 0;        for (int mY = y; mY < (y + h); mY++)          {            // set color alternating with every line            if (((mY - y) % 2) == 0)              g.setColor(light);            else              g.setColor(dark);            for (int mX = x + (xOff); mX < (x + w); mX += 4)              {                g.drawLine(mX, mY, mX, mY);              }            // increase x offset            xOff++;            if (xOff > 3)              xOff = 0;          }        }  }  /**   * Fills a rectangle with the typical Metal pattern using Java2D.   *   * @param g2d the <code>Graphics2D</code> context to use   * @param x the X coordinate of the upper left corner of the rectangle to   *     fill   * @param y the Y coordinate of the upper left corner of the rectangle to   *     fill   * @param w the width of the rectangle to fill   * @param h the height of the rectangle to fill   */  static void fillMetalPattern2D(Graphics2D g2d,  int x, int y, int w, int h,                                 Color light, Color dark)  {    if (pattern2D == null || !darkColor.equals(dark) || !lightColor.equals(light))      initializePattern(light, dark);    // Prepare the texture.    TexturePaint texture =      new TexturePaint(pattern2D, new Rectangle2D.Double(0., 0., 4., 4.));    g2d.setPaint(texture);    g2d.fillRect(x, y, w, h);  }  /**   * Initializes the pattern image.   */  static void initializePattern(Color light, Color dark)  {    pattern2D = new BufferedImage(4, 4, BufferedImage.TYPE_INT_ARGB);    lightColor = light;    darkColor = dark;    Graphics g = pattern2D.getGraphics();    g.setColor(light);    g.fillRect(0, 0, 1, 1);    g.fillRect(2, 2, 1, 1);    g.setColor(dark);    g.fillRect(1, 1, 1, 1);    g.fillRect(3, 3, 1, 1);    g.dispose();  }  /**   * Paints the typical Metal gradient. See {@link #paintGradient(Graphics,   * int, int, int, int, double, double, Color, Color, Color, int)}   * for more details.   *   * The parameters are fetched from the UIManager using the key   * <code>uiProp</code>. The value is expected to be a {@link List} that   * contains 4 values: two {@link Double}s and 3 {@link Color} object that   * together make up the parameters passed to the painting method.   *    * @param g the graphics context to use   * @param x the X coordinate of the upper left corner of the rectangle   * @param y the Y coordinate of the upper left corner of the rectangle   * @param w the width of the rectangle   * @param h the height of the rectangle   * @param dir the direction of the gradient, either   * @param uiProp the key of the UIManager property that has the parameters   */  static void paintGradient(Graphics g, int x, int y, int w, int h,                            int dir, String uiProp)  {    List params = (List) UIManager.get(uiProp);    double g1 = ((Double) params.get(0)).doubleValue();    double g2 = ((Double) params.get(1)).doubleValue();    Color c1 = (Color) params.get(2);    Color c2 = (Color) params.get(3);    Color c3 = (Color) params.get(4);    paintGradient(g, x, y, w, h, g1, g2, c1, c2, c3, dir);  }  /**   * Paints the typical Metal gradient. The gradient is painted as follows:   * <pre>   *    * +-------+--------+--------+-----------------------------+   * |       |        |        |                             |   * +-------+--------+--------+-----------------------------+   * c1  ->  c2  --   c2  ->   c1         -------->          c3   * < -g1- > < -g2- > < -g1- >   * </pre>   *    * There are 4 distinct areas in this gradient:   * <ol>   * <li>A gradient from color 1 to color 2 with the relative width specified   *   by <code>g1</code></li>   * <li>A solid area with the color 2 and the relative width specified by   *  <code>g2</code></li>   * <li>A gradient from color 2 to color 1 with the relative width specified   *   by <code>g1</code></li>   *   * @param g the graphics context to use   * @param x the X coordinate of the upper left corner of the rectangle   * @param y the Y coordinate of the upper left corner of the rectangle   * @param w the width of the rectangle   * @param h the height of the rectangle   * @param g1 the relative width of the c1->c2 gradients   * @param g2 the relative width of the c2 solid area   * @param c1 the color 1   * @param c2 the color 2   * @param c3 the color 3   * @param dir the direction of the gradient, either   *        {@link SwingConstants#HORIZONTAL} or {@link SwingConstants#VERTICAL}   */  static void paintGradient(Graphics g, int x, int y, int w, int h, double g1,                            double g2, Color c1, Color c2, Color c3, int dir)  {    if (dir == SwingConstants.HORIZONTAL)      paintHorizontalGradient(g, x, y, w, h, g1, g2, c1, c2, c3);    else      paintVerticalGradient(g, x, y, w, h, g1, g2, c1, c2, c3);  }  /**   * Paints a horizontal gradient. See {@link #paintGradient(Graphics, int,   * int, int, int, double, double, Color, Color, Color, int)} for details.   *   * @param x the X coordinate of the upper left corner of the rectangle   * @param y the Y coordinate of the upper left corner of the rectangle   * @param w the width of the rectangle   * @param h the height of the rectangle   * @param g1 the relative width of the c1->c2 gradients   * @param g2 the relative width of the c2 solid area   * @param c1 the color 1   * @param c2 the color 2   * @param c3 the color 3   */  static void paintHorizontalGradient(Graphics g, int x, int y, int w, int h,                                      double g1, double g2, Color c1, Color c2,                                      Color c3)  {    // Calculate the coordinates.    // The size of the first gradient area (c1->2).    int w1 = (int) (w * g1);    // The size of the solid c2 area.    int w2 = (int) (w * g2);    int x0 = x;    int x1 = x0 + w1;    int x2 = x1 + w2;    int x3 = x2 + w1;    int x4 = x + w;    // Paint first gradient area (c1->c2).    int xc; // The current y coordinate.    for (xc = x0; xc < x1; xc++)      {        if (xc > x + w)          break;        // Perform color interpolation;        double factor = (xc - x0) / (double) w1;        int rInt = (int) ((c2.getRed() - c1.getRed()) * factor + c1.getRed());        int gInt = (int) ((c2.getGreen() - c1.getGreen()) * factor            + c1.getGreen());        int bInt = (int) ((c2.getBlue() - c1.getBlue()) * factor            + c1.getBlue());        Color interpolated = new Color(rInt, gInt, bInt);        g.setColor(interpolated);        g.drawLine(xc, y, xc, y + h);      }    // Paint solid c2 area.    g.setColor(c2);    g.fillRect(x1, y, x2 - x1, h);    // Paint second gradient area (c2->c1).    for (xc = x2; xc < x3; xc++)      {        if (xc > x + w)          break;        // Perform color interpolation;        double factor = (xc - x2) / (double) w1;        int rInt = (int) ((c1.getRed() - c2.getRed()) * factor + c2.getRed());        int gInt = (int) ((c1.getGreen() - c2.getGreen()) * factor            + c2.getGreen());        int bInt = (int) ((c1.getBlue() - c2.getBlue()) * factor            + c2.getBlue());        Color interpolated = new Color(rInt, gInt, bInt);        g.setColor(interpolated);        g.drawLine(xc, y, xc, y + h);      }    // Paint third gradient area (c1->c3).    for (xc = x3; xc < x4; xc++)      {        if (xc > x + w)          break;        // Perform color interpolation;        double factor = (xc - x3) / (double) (x4 - x3);        int rInt = (int) ((c3.getRed() - c1.getRed()) * factor + c1.getRed());        int gInt = (int) ((c3.getGreen() - c1.getGreen()) * factor            + c1.getGreen());        int bInt = (int) ((c3.getBlue() - c1.getBlue()) * factor            + c1.getBlue());        Color interpolated = new Color(rInt, gInt, bInt);        g.setColor(interpolated);        g.drawLine(xc, y, xc, y + h);      }  }  /**   * Paints a vertical gradient. See {@link #paintGradient(Graphics, int, int,   * int, int, double, double, Color, Color, Color, int)} for details.   *   * @param x the X coordinate of the upper left corner of the rectangle   * @param y the Y coordinate of the upper left corner of the rectangle   * @param w the width of the rectangle   * @param h the height of the rectangle   * @param g1 the relative width of the c1->c2 gradients   * @param g2 the relative width of the c2 solid area   * @param c1 the color 1   * @param c2 the color 2   * @param c3 the color 3   */  static void paintVerticalGradient(Graphics g, int x, int y, int w, int h,                                    double g1, double g2, Color c1, Color c2,                                    Color c3)  {    // Calculate the coordinates.    // The size of the first gradient area (c1->2).    int w1 = (int) (h * g1);    // The size of the solid c2 area.    int w2 = (int) (h * g2);    int y0 = y;    int y1 = y0 + w1;    int y2 = y1 + w2;    int y3 = y2 + w1;    int y4 = y + h;    // Paint first gradient area (c1->c2).    int yc; // The current y coordinate.    for (yc = y0; yc < y1; yc++)      {        if (yc > y + h)          break;        // Perform color interpolation;        double factor = (yc - y0) / (double) w1;        int rInt = (int) ((c2.getRed() - c1.getRed()) * factor + c1.getRed());        int gInt = (int) ((c2.getGreen() - c1.getGreen()) * factor            + c1.getGreen());        int bInt = (int) ((c2.getBlue() - c1.getBlue()) * factor            + c1.getBlue());        Color interpolated = new Color(rInt, gInt, bInt);        g.setColor(interpolated);        g.drawLine(x, yc, x + w, yc);      }    // Paint solid c2 area.    g.setColor(c2);    g.fillRect(x, y1, w, y2 - y1);    // Paint second gradient area (c2->c1).    for (yc = y2; yc < y3; yc++)      {        if (yc > y + h)          break;        // Perform color interpolation;        double factor = (yc - y2) / (double) w1;        int rInt = (int) ((c1.getRed() - c2.getRed()) * factor + c2.getRed());        int gInt = (int) ((c1.getGreen() - c2.getGreen()) * factor            + c2.getGreen());        int bInt = (int) ((c1.getBlue() - c2.getBlue()) * factor            + c2.getBlue());        Color interpolated = new Color(rInt, gInt, bInt);        g.setColor(interpolated);        g.drawLine(x, yc, x + w, yc);      }    // Paint third gradient area (c1->c3).    for (yc = y3; yc < y4; yc++)      {        if (yc > y + h)          break;        // Perform color interpolation;        double factor = (yc - y3) / (double) (y4 - y3);        int rInt = (int) ((c3.getRed() - c1.getRed()) * factor + c1.getRed());        int gInt = (int) ((c3.getGreen() - c1.getGreen()) * factor            + c1.getGreen());        int bInt = (int) ((c3.getBlue() - c1.getBlue()) * factor            + c1.getBlue());        Color interpolated = new Color(rInt, gInt, bInt);        g.setColor(interpolated);        g.drawLine(x, yc, x + w, yc);      }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产性色一区二区| 亚洲国产va精品久久久不卡综合| 国产精品美日韩| 日韩国产欧美在线观看| 精品国产乱码久久久久久免费 | 精品国产免费视频| 亚洲一区二区三区四区不卡| 国产成人自拍高清视频在线免费播放| 欧洲生活片亚洲生活在线观看| 久久久午夜精品| 日韩精品国产欧美| 91精品办公室少妇高潮对白| 中文字幕欧美区| 国产综合色视频| 欧美一区二区在线不卡| 亚洲超丰满肉感bbw| 99久久精品国产精品久久| 国产日韩欧美亚洲| 国产一区二区三区在线观看免费| 欧美人与性动xxxx| 亚洲香肠在线观看| 在线观看av不卡| 樱花草国产18久久久久| 99久久综合99久久综合网站| 国产欧美日韩久久| 国产成人夜色高潮福利影视| 欧美精品一区二区久久久 | 亚洲黄网站在线观看| 成人美女视频在线看| 欧美国产日韩一二三区| 国产91精品精华液一区二区三区 | 日韩欧美成人激情| 精品无码三级在线观看视频| 久久亚洲综合色| 国产成人午夜精品5599| 中文字幕在线一区二区三区| 波多野结衣中文一区| 中文字幕一区三区| 91色综合久久久久婷婷| 亚洲精品视频在线观看免费| 色乱码一区二区三区88| 亚洲国产成人va在线观看天堂| 国产精华液一区二区三区| 男人的j进女人的j一区| 欧美日韩亚洲不卡| 美腿丝袜亚洲三区| 亚洲观看高清完整版在线观看| 在线观看91视频| 蜜臀av一区二区三区| 精品久久国产字幕高潮| 大桥未久av一区二区三区中文| 成人欧美一区二区三区黑人麻豆 | 国产一区二区三区在线观看免费 | 五月婷婷综合激情| 精品精品欲导航| proumb性欧美在线观看| 亚洲国产精品欧美一二99| 日韩欧美一级在线播放| 国产99精品视频| 亚洲精品视频在线观看网站| 欧美一区二区三区影视| 成人一级视频在线观看| 亚洲高清免费视频| 久久久精品免费观看| 成人黄色一级视频| 亚洲123区在线观看| 久久综合色之久久综合| 91传媒视频在线播放| 久久精品国产秦先生| 国产精品国产精品国产专区不片| 欧美日韩一区二区三区不卡| 国产伦精品一区二区三区免费迷| 亚洲免费在线播放| 精品999在线播放| 亚洲丝袜另类动漫二区| 欧美日韩亚洲另类| 97se亚洲国产综合自在线不卡| 免费在线看成人av| 亚洲制服丝袜av| 国产精品伦一区| 精品国产自在久精品国产| 色婷婷亚洲精品| 国产一区欧美一区| 午夜激情久久久| 亚洲免费色视频| 中文字幕精品在线不卡| 日韩美女一区二区三区四区| 欧美亚洲一区三区| 不卡的av中国片| 国产精品77777| 秋霞午夜鲁丝一区二区老狼| 亚洲国产视频一区| 亚洲欧美综合另类在线卡通| 欧美精品一区二区久久久| 欧美一区二区三区色| 欧美四级电影网| 91丨国产丨九色丨pron| 成人三级伦理片| 国产精品夜夜嗨| 国产一区二区三区视频在线播放| 日韩高清国产一区在线| 亚洲123区在线观看| 亚洲综合久久av| 亚洲国产日产av| 亚洲mv在线观看| 亚洲大尺度视频在线观看| 亚洲免费在线观看视频| 国产精品国产三级国产普通话99| 久久影院视频免费| 国产丝袜欧美中文另类| 在线观看日韩精品| 99久久久久久99| 97国产一区二区| 在线精品视频一区二区| heyzo一本久久综合| 99视频精品全部免费在线| 久久精品夜夜夜夜久久| 91精品婷婷国产综合久久性色 | 一区二区三区在线观看网站| 亚洲欧美视频在线观看视频| 一区二区三区在线观看国产| 樱花草国产18久久久久| 午夜视频在线观看一区二区| 天堂一区二区在线| 青草国产精品久久久久久| 男人的天堂亚洲一区| 国产做a爰片久久毛片| 丁香啪啪综合成人亚洲小说 | 大尺度一区二区| 色婷婷久久久久swag精品| 欧美少妇bbb| 日韩免费视频线观看| 国产日韩成人精品| 一区二区三区四区在线免费观看 | 亚洲精品视频在线| 日韩高清不卡一区二区| 国产在线不卡一区| 99riav一区二区三区| 欧美视频三区在线播放| 精品国产伦一区二区三区观看体验| 久久蜜臀中文字幕| 亚洲另类在线一区| 青青草成人在线观看| 国产成人精品免费在线| 在线精品视频一区二区三四| 日韩一区二区三区av| 中文乱码免费一区二区| 亚洲国产另类精品专区| 国产精品99久久久久久似苏梦涵| 久久精品视频网| 一区二区三区日韩欧美| 美国毛片一区二区三区| 91在线云播放| 精品国产一区二区国模嫣然| 日韩理论片中文av| 精品在线视频一区| 欧美性大战久久久久久久蜜臀| 精品播放一区二区| 亚洲高清免费观看| 成人app在线| 日韩欧美国产成人一区二区| 亚洲欧美一区二区三区国产精品 | 亚洲女女做受ⅹxx高潮| 久久99精品久久只有精品| 色88888久久久久久影院野外| 精品国产乱码久久久久久夜甘婷婷 | 91麻豆精品国产91久久久久| 成人免费小视频| 久热成人在线视频| 欧美日韩一本到| 亚洲另类在线制服丝袜| 成人激情文学综合网| 精品噜噜噜噜久久久久久久久试看| 一区二区在线免费观看| 大白屁股一区二区视频| 久久亚洲一区二区三区明星换脸| 日日噜噜夜夜狠狠视频欧美人| 91在线免费看| 国产精品萝li| 成人激情校园春色| 国产午夜精品一区二区 | 毛片av一区二区| 欧美天堂一区二区三区| 亚洲免费观看视频| aaa欧美色吧激情视频| 欧美激情综合在线| 国产一区二区三区精品欧美日韩一区二区三区 | 国产一区二区不卡| 欧美电影免费观看高清完整版| 婷婷中文字幕综合| 欧美视频一区二区在线观看| 一个色妞综合视频在线观看| 一本久道中文字幕精品亚洲嫩| 综合久久一区二区三区| av亚洲精华国产精华精华| 国产精品伦一区二区三级视频| 成人精品小蝌蚪| 日韩毛片精品高清免费| 色94色欧美sute亚洲13| 亚洲一卡二卡三卡四卡 |