⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtkdefaultstyle.java

📁 java1.6众多例子参考
💻 JAVA
字号:
/* * GTKDefaultStyle.java * * @(#)GTKDefaultStyle.java	1.1 05/08/05 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.java.swing.plaf.gtk;import java.awt.*;import javax.swing.*;import javax.swing.plaf.*;import javax.swing.plaf.synth.*;/** * * @version 1.1, 08/05/05 * @author Kirill Kirichenko */class GTKDefaultStyle extends GTKStyle {        private static final int DEFAULT_XTHICKNESS = 2;    private static final int DEFAULT_YTHICKNESS = 2;        private static final Color[][] DEFAULT_COLORS;    /**     * State the color array at an particular index in DEFAULT_COLORS     * represents.     */    private static final int[] DEFAULT_COLOR_MAP;        static {        DEFAULT_COLOR_MAP = new int[] {            SynthConstants.PRESSED, SynthConstants.SELECTED,            SynthConstants.ENABLED, SynthConstants.MOUSE_OVER,            SynthConstants.DISABLED        };        DEFAULT_COLORS = new Color[5][];        // 2.0 colors        //         if (!GTKLookAndFeel.is2_2()) {            DEFAULT_COLORS[0] = getColorsFrom(                    new ColorUIResource(195, 195, 195), BLACK_COLOR);            DEFAULT_COLORS[1] = getColorsFrom(                    new ColorUIResource(0, 0, 156), WHITE_COLOR);            DEFAULT_COLORS[2] = getColorsFrom(                    new ColorUIResource(214, 214, 214), BLACK_COLOR);            DEFAULT_COLORS[3] = getColorsFrom(                    new ColorUIResource(233, 233, 233), BLACK_COLOR);            DEFAULT_COLORS[4] = getColorsFrom(                    new ColorUIResource(214, 214, 214),                    new ColorUIResource(117, 117, 117));            DEFAULT_COLORS[0][GTKColorType.TEXT_BACKGROUND.getID()] = new                    ColorUIResource(188, 210, 238);            DEFAULT_COLORS[1][GTKColorType.TEXT_BACKGROUND.getID()] = new                    ColorUIResource(164, 223, 255);            DEFAULT_COLORS[1][GTKColorType.TEXT_FOREGROUND.getID()] =                    BLACK_COLOR;            DEFAULT_COLORS[2][GTKColorType.TEXT_FOREGROUND.getID()] =                    BLACK_COLOR;            DEFAULT_COLORS[4][GTKColorType.TEXT_FOREGROUND.getID()] =                DEFAULT_COLORS[2][GTKColorType.TEXT_FOREGROUND.getID()];        }        else {            // 2.2 colors            DEFAULT_COLORS[0] = getColorsFrom(                    new ColorUIResource(186, 181, 171), BLACK_COLOR);            DEFAULT_COLORS[1] = getColorsFrom(                    new ColorUIResource(75, 105, 131), WHITE_COLOR);            DEFAULT_COLORS[2] = getColorsFrom(                    new ColorUIResource(220, 218, 213), BLACK_COLOR);            DEFAULT_COLORS[3] = getColorsFrom(                    new ColorUIResource(238, 235, 231), BLACK_COLOR);            DEFAULT_COLORS[4] = getColorsFrom(                    new ColorUIResource(220, 218, 213),                    new ColorUIResource(117, 117, 117));            DEFAULT_COLORS[0][GTKColorType.TEXT_BACKGROUND.getID()] = new                    ColorUIResource(128, 125, 116);            DEFAULT_COLORS[1][GTKColorType.TEXT_BACKGROUND.getID()] = new                    ColorUIResource(75, 105, 131);            DEFAULT_COLORS[2][GTKColorType.TEXT_BACKGROUND.getID()] =                    WHITE_COLOR;            DEFAULT_COLORS[3][GTKColorType.TEXT_BACKGROUND.getID()] =                    WHITE_COLOR;            DEFAULT_COLORS[4][GTKColorType.TEXT_BACKGROUND.getID()] = new                    ColorUIResource(238, 235, 231);            DEFAULT_COLORS[0][GTKColorType.TEXT_FOREGROUND.getID()] =                    WHITE_COLOR;            DEFAULT_COLORS[1][GTKColorType.TEXT_FOREGROUND.getID()] =                    WHITE_COLOR;            DEFAULT_COLORS[2][GTKColorType.TEXT_FOREGROUND.getID()] =                    BLACK_COLOR;            DEFAULT_COLORS[3][GTKColorType.TEXT_FOREGROUND.getID()] =                    BLACK_COLOR;            DEFAULT_COLORS[4][GTKColorType.TEXT_FOREGROUND.getID()] = new                    ColorUIResource(117, 117, 117);        }    }        GTKDefaultStyle(Font font) {        super(font);    }        Color getStyleSpecificColor(SynthContext context, int state, ColorType type) {        Region id = (context != null) ? context.getRegion() : null;        Color color = null;                if (id == Region.TOOL_TIP) {            color = getToolTipColor(state, type);        } else if (id == Region.PROGRESS_BAR && GTKLookAndFeel.is2_2()) {            color = getProgressBarColor(state, type);        } else if ((id == Region.MENU || id == Region.MENU_ITEM ||                    id == Region.POPUP_MENU_SEPARATOR ||                    id == Region.CHECK_BOX_MENU_ITEM ||                    id == Region.RADIO_BUTTON_MENU_ITEM ||                    id == Region.MENU_ITEM_ACCELERATOR) &&                    GTKLookAndFeel.is2_2()) {            color = getMenuItemColor(state, type);        }                if (color != null) {            return color;        }                for (int counter = DEFAULT_COLOR_MAP.length - 1;                     counter >= 0; counter--) {            if ((DEFAULT_COLOR_MAP[counter] & state) != 0) {                if (type.getID() < DEFAULT_COLORS[counter].length) {                    return DEFAULT_COLORS[counter][type.getID()];                }            }        }        if (type.getID() < DEFAULT_COLORS[2].length) {            return DEFAULT_COLORS[2][type.getID()];        }        return null;    }    private Color getToolTipColor(int state, ColorType type) {        if (state == SynthConstants.ENABLED) {            if(type == GTKColorType.BACKGROUND) {                 return(GTKLookAndFeel.is2_2() ?                        new ColorUIResource(0xEEE1B3) :                        new ColorUIResource(0xFFFFC0));            }                if(type == GTKColorType.FOREGROUND) {                return new ColorUIResource(0x000000);            }        }        return null;    }    private Color getProgressBarColor(int state, ColorType type) {        if (state == SynthConstants.ENABLED) {            if(type == GTKColorType.BACKGROUND) {                 return new ColorUIResource(0xBAB5AB);            }        } else if (state == SynthConstants.MOUSE_OVER) {            if(type == GTKColorType.BACKGROUND) {                 return new ColorUIResource(0x4B6983);            }        }        return null;    }    private Color getMenuItemColor(int state, ColorType type) {        if (state == SynthConstants.SELECTED) {            if(type == GTKColorType.TEXT_FOREGROUND ||               type == GTKColorType.FOREGROUND) {                 return new ColorUIResource(0xFFFFFF);            }        } else if (state == SynthConstants.MOUSE_OVER) {            if(type == GTKColorType.BACKGROUND) {                 return new ColorUIResource(0x9db8d2);            }            if(type == GTKColorType.FOREGROUND) {                 return GTKStyle.WHITE_COLOR;            }            if(type == GTKColorType.TEXT_FOREGROUND) {                 return new ColorUIResource(0xFFFFFF);            }        }        return null;    }        /**     * Returns the X thickness to use for this GTKStyle.     *     * @return x thickness.     */    int getXThickness() {        return DEFAULT_XTHICKNESS;    }    /**     * Returns the Y thickness to use for this GTKStyle.     *     * @return x thickness.     */    int getYThickness() {        return DEFAULT_YTHICKNESS;    }        /**     * Returns the value for a class specific property. A class specific value     * is a value that will be picked up based on class hierarchy.     *     * @param context SynthContext indentifying requestor     * @param key Key identifying class specific value     * @return Value, or null if one has not been defined.     */    Object getClassSpecificValue(Region region, String key) {        return null;    }    /**     * Creates an array of colors populated based on the passed in     * the background color. Specifically this sets the     * BACKGROUND, LIGHT, DARK, MID, BLACK, WHITE and FOCUS colors     * from that of color, which is assumed to be the background.     */    private static Color[] getColorsFrom(Color bg, Color fg) {        Color lightColor = calculateLightColor(bg);        Color darkColor = calculateDarkColor(bg);        Color midColor = calculateMidColor(lightColor, darkColor);        Color[] colors = new Color[GTKColorType.MAX_COUNT];        colors[GTKColorType.BACKGROUND.getID()] = bg;        colors[GTKColorType.LIGHT.getID()] = lightColor;        colors[GTKColorType.DARK.getID()] = darkColor;        colors[GTKColorType.MID.getID()] = midColor;        colors[GTKColorType.BLACK.getID()] = BLACK_COLOR;        colors[GTKColorType.WHITE.getID()] = WHITE_COLOR;        colors[GTKColorType.FOCUS.getID()] = BLACK_COLOR;        colors[GTKColorType.FOREGROUND.getID()] = fg;        colors[GTKColorType.TEXT_FOREGROUND.getID()] = fg;        colors[GTKColorType.TEXT_BACKGROUND.getID()] = WHITE_COLOR;        return colors;    }    /**     * Calculates the LIGHT color from the background color.     */    private static Color calculateLightColor(Color bg) {        return GTKColorType.adjustColor(bg, 1.0f, 1.3f, 1.3f);    }    /**     * Calculates the DARK color from the background color.     */    private static Color calculateDarkColor(Color bg) {        return GTKColorType.adjustColor(bg, 1.0f, .7f, .7f);    }    /**     * Calculates the MID color from the light and dark colors.     */    private static Color calculateMidColor(Color lightColor, Color darkColor) {        int light = lightColor.getRGB();        int dark = darkColor.getRGB();        int rLight = (light & 0xFF0000) >> 16;        int rDark = (dark & 0xFF0000) >> 16;        int gLight = (light & 0x00FF00) >> 8;        int gDark = (dark & 0x00FF00) >> 8;        int bLight = (light & 0xFF);        int bDark = (dark & 0xFF);        return new ColorUIResource((((rLight + rDark) / 2) << 16) |                                   (((gLight + gDark) / 2) << 8) |                                   ((bLight + bDark) / 2));    }}

⌨️ 快捷键说明

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