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

📄 smoothgradientscrollbarui.java

📁 eq跨平台查询工具源码 eq跨平台查询工具源码
💻 JAVA
字号:
/* * SmoothGradientScrollBarUI.java * * Copyright (C) 2002, 2003, 2004, 2005, 2006 Takis Diakoumis * * 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.underworldlabs.swing.plaf.smoothgradient;import java.awt.Adjustable;import java.awt.Color;import java.awt.Graphics;import java.awt.Rectangle;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.UIManager;import javax.swing.plaf.ComponentUI;import javax.swing.plaf.metal.MetalScrollBarUI;/* ---------------------------------------------------------- * CVS NOTE: Changes to the CVS repository prior to the  *           release of version 3.0.0beta1 has meant a  *           resetting of CVS revision numbers. * ---------------------------------------------------------- *//** * * @author   Takis Diakoumis * @version  $Revision: 1.4 $ * @date     $Date: 2006/05/14 06:56:07 $ */public final class SmoothGradientScrollBarUI extends MetalScrollBarUI {        private static final String PROPERTY_PREFIX	  = "ScrollBar.";    public  static final String MAX_BUMPS_WIDTH_KEY = PROPERTY_PREFIX + "maxBumpsWidth";        private static Color shadowColor;    private static Color highlightColor;    private static Color darkShadowColor;    private static Color thumbColor;    private static Color thumbShadow;    private static Color thumbHighlightColor;        private static Color centerLineHighlight;    private static Color centerLineShadow;        // private SmoothGradientBumps bumps;        public static ComponentUI createUI(JComponent b) {        return new SmoothGradientScrollBarUI();    }        protected void installDefaults() {        super.installDefaults();        //bumps = new SmoothGradientBumps(10, 10, thumbHighlightColor, thumbShadow, thumbColor);    }        protected JButton createDecreaseButton(int orientation) {        decreaseButton = new SmoothGradientArrowButton(orientation, scrollBarWidth, isFreeStanding);        return decreaseButton;    }            protected JButton createIncreaseButton(int orientation) {        increaseButton = new SmoothGradientArrowButton(orientation, scrollBarWidth, isFreeStanding);        return increaseButton;    }        protected void configureScrollBarColors() {        super.configureScrollBarColors();        shadowColor         = UIManager.getColor(PROPERTY_PREFIX + "shadow");        highlightColor      = UIManager.getColor(PROPERTY_PREFIX + "highlight");        darkShadowColor     = UIManager.getColor(PROPERTY_PREFIX + "darkShadow");        thumbColor          = UIManager.getColor(PROPERTY_PREFIX + "thumb");        thumbShadow         = UIManager.getColor(PROPERTY_PREFIX + "thumbShadow");        thumbHighlightColor = UIManager.getColor(PROPERTY_PREFIX + "thumbHighlight");                centerLineHighlight = new Color(198,198,229);        centerLineShadow = new Color(109,109,177);            }        protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) {        g.translate(trackBounds.x, trackBounds.y);                boolean leftToRight = SmoothGradientUtils.isLeftToRight(c);                if (scrollbar.getOrientation() == Adjustable.VERTICAL) {            if (!isFreeStanding) {                if (!leftToRight) {                    trackBounds.width += 1;                    g.translate(-1, 0);                } else {                    trackBounds.width += 2;                }            }                        if (c.isEnabled()) {                g.setColor(darkShadowColor);                g.drawLine(0, 0, 0, trackBounds.height - 1);                g.drawLine(trackBounds.width - 2, 0, trackBounds.width - 2, trackBounds.height - 1);                g.drawLine(1, trackBounds.height - 1, trackBounds.width - 1, trackBounds.height - 1);                g.drawLine(1, 0, trackBounds.width - 2, 0);                                g.setColor(shadowColor);                //	g.setColor( Color.red);                g.drawLine(1, 1, 1, trackBounds.height - 2);                g.drawLine(1, 1, trackBounds.width - 3, 1);                if (scrollbar.getValue() != scrollbar.getMaximum()) { // thumb shadow                    int y = thumbRect.y + thumbRect.height - trackBounds.y;                    g.drawLine(1, y, trackBounds.width - 1, y);                }                g.setColor(highlightColor);                g.drawLine(trackBounds.width - 1, 0, trackBounds.width - 1, trackBounds.height - 1);            } else {                SmoothGradientUtils.drawDisabledBorder(g, 0, 0, trackBounds.width, trackBounds.height);            }                        if (!isFreeStanding) {                if (!leftToRight) {                    trackBounds.width -= 1;                    g.translate(1, 0);                } else {                    trackBounds.width -= 2;                }            }        } else { // HORIZONTAL            if (!isFreeStanding) {                trackBounds.height += 2;            }                        if (c.isEnabled()) {                g.setColor(darkShadowColor);                g.drawLine(0, 0, trackBounds.width - 1, 0); // top                g.drawLine(0, 1, 0, trackBounds.height - 2); // left                g.drawLine(0, trackBounds.height - 2, trackBounds.width - 1, trackBounds.height - 2);                // bottom                g.drawLine(trackBounds.width - 1, 1, trackBounds.width - 1, trackBounds.height - 1);                                // right                g.setColor(shadowColor);                //	g.setColor( Color.red);                g.drawLine(1, 1, trackBounds.width - 2, 1); // top                g.drawLine(1, 1, 1, trackBounds.height - 3); // left                g.drawLine(0, trackBounds.height - 1, trackBounds.width - 1, trackBounds.height - 1);                // bottom                if (scrollbar.getValue() != scrollbar.getMaximum()) { // thumb shadow                    int x = thumbRect.x + thumbRect.width - trackBounds.x;                    g.drawLine(x, 1, x, trackBounds.height - 1);                }            } else {                SmoothGradientUtils.drawDisabledBorder(g, 0, 0, trackBounds.width, trackBounds.height);            }                        if (!isFreeStanding) {                trackBounds.height -= 2;            }        }        g.translate(-trackBounds.x, -trackBounds.y);    }            protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {                if (!c.isEnabled()) {            return;        }                boolean leftToRight = SmoothGradientUtils.isLeftToRight(c);                g.translate(thumbBounds.x, thumbBounds.y);                if (scrollbar.getOrientation() == Adjustable.VERTICAL) {                        if (!isFreeStanding) {                if (!leftToRight) {                    thumbBounds.width += 1;                    g.translate(-1, 0);                } else {                    thumbBounds.width += 2;                }                            }                        g.setColor(thumbColor);            g.fillRect(0, 0, thumbBounds.width - 2, thumbBounds.height - 1);                        g.setColor(thumbShadow);            g.drawRect(0, 0, thumbBounds.width - 2, thumbBounds.height - 1);                        g.setColor(thumbHighlightColor);            g.drawLine(1, 1, thumbBounds.width - 3, 1);            g.drawLine(1, 1, 1, thumbBounds.height - 2);                        //			paintBumps(g, c, 3, 4, thumbBounds.width - 6, thumbBounds.height - 7);                        // draw the center lines            int lineY = 4 + (thumbBounds.height - 13) / 2;            g.setColor(centerLineHighlight);            g.drawLine(4, lineY, 11, lineY);            g.drawLine(4, lineY+3, 11, lineY+3);            g.drawLine(4, lineY+6, 11, lineY+6);            g.setColor(centerLineShadow);            g.drawLine(5, lineY+1, 12, lineY+1);            g.drawLine(5, lineY+4, 12, lineY+4);            g.drawLine(5, lineY+7, 12, lineY+7);                        if (!isFreeStanding) {                if (!leftToRight) {                    thumbBounds.width -= 1;                    g.translate(1, 0);                } else {                    thumbBounds.width -= 2;                }            }        } else { // HORIZONTAL                        if (!isFreeStanding) {                thumbBounds.height += 2;            }                        g.setColor(thumbColor);            g.fillRect(0, 0, thumbBounds.width - 1, thumbBounds.height - 2);                        g.setColor(thumbShadow);            g.drawRect(0, 0, thumbBounds.width - 1, thumbBounds.height - 2);                        g.setColor(thumbHighlightColor);            g.drawLine(1, 1, thumbBounds.width - 2, 1);            g.drawLine(1, 1, 1, thumbBounds.height - 3);                        //			paintBumps(g, c, 4, 3, thumbBounds.width - 7, thumbBounds.height - 6);                        // draw the center lines            int lineX = 4 + (thumbBounds.width - 7) / 2;            g.setColor(centerLineShadow);            g.drawLine(lineX, 4, lineX, 11);            g.drawLine(lineX+3, 4, lineX+3, 11);            g.drawLine(lineX+6, 4, lineX+6, 11);            g.setColor(centerLineHighlight);            g.drawLine(lineX+1, 5, lineX+1, 12);            g.drawLine(lineX+4, 5, lineX+4, 12);            g.drawLine(lineX+7, 5, lineX+7, 12);                        if (!isFreeStanding) {                thumbBounds.height -= 2;            }                    }                g.translate(-thumbBounds.x, -thumbBounds.y);                if (SmoothGradientUtils.is3D(PROPERTY_PREFIX))            paintThumb3D(g, thumbBounds);            }        /*    private void paintBumps(Graphics g, JComponent c, int x, int y, int width, int height) {//		if (!useNarrowBumps()) {//			bumps.setBumpArea(width, height);//			bumps.paintIcon(c, g, x, y);//		} else {            int MAX_WIDTH= UIManager.getInt(MAX_BUMPS_WIDTH_KEY);            int myWidth  = Math.min(MAX_WIDTH, width);            int myHeight = Math.min(MAX_WIDTH, height);            int myX      = x + (width  - myWidth) / 2;            int myY      = y + (height - myHeight) / 2;            bumps.setBumpArea(myWidth, myHeight);            bumps.paintIcon(c, g, myX, myY);//		}    }          */    private void paintThumb3D(Graphics g, Rectangle thumbBounds) {        boolean isHorizontal = scrollbar.getOrientation() == Adjustable.HORIZONTAL;        int width   = thumbBounds.width  - (isHorizontal ? 3 : 1);        int height  = thumbBounds.height - (isHorizontal ? 1 : 3);        Rectangle r = new Rectangle(thumbBounds.x + 2, thumbBounds.y + 2, width, height);        SmoothGradientUtils.addLight3DEffekt(g, r, isHorizontal);    }            // Accessing Special Client Properties **********************************************        private boolean useNarrowBumps() {        Object value = UIManager.get(MAX_BUMPS_WIDTH_KEY);        return value != null && value instanceof Integer;    }}

⌨️ 快捷键说明

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