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

📄 basicarrowbutton.java

📁 java jdk 1.4的源码
💻 JAVA
字号:
/* * @(#)BasicArrowButton.java	1.25 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package javax.swing.plaf.basic;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Color;import javax.swing.*;import javax.swing.plaf.UIResource;/** * JButton object that draws a scaled Arrow in one of the cardinal directions. * <p> * <strong>Warning:</strong> * Serialized objects of this class will not be compatible with * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing.  As of 1.4, support for long term storage * of all JavaBeans<sup><font size="-2">TM</font></sup> * has been added to the <code>java.beans</code> package. * Please see {@link java.beans.XMLEncoder}. * * @version 1.25 01/23/03 * @author David Kloba */public class BasicArrowButton extends JButton implements SwingConstants{        protected int direction;        private Color shadow;        private Color darkShadow;        private Color highlight;        public BasicArrowButton(int direction, Color background, Color shadow,			 Color darkShadow, Color highlight) {	    super();	    setRequestFocusEnabled(false);            setDirection(direction);            setBackground(background);	    this.shadow = shadow;	    this.darkShadow = darkShadow;	    this.highlight = highlight;	}           public BasicArrowButton(int direction) {	    this(direction, UIManager.getColor("control"), UIManager.getColor("controlShadow"),		 UIManager.getColor("controlDkShadow"), UIManager.getColor("controlLtHighlight"));        }        public int getDirection() { return direction; }        public void setDirection(int dir) { direction = dir; }	public void paint(Graphics g) {	    Color origColor;	    boolean isPressed, isEnabled;	    int w, h, size;            w = getSize().width;            h = getSize().height;	    origColor = g.getColor();	    isPressed = getModel().isPressed();	    isEnabled = isEnabled();            g.setColor(getBackground());            g.fillRect(1, 1, w-2, h-2);            /// Draw the proper Border	    if (getBorder() != null && !(getBorder() instanceof UIResource)) {		paintBorder(g);	    } else if (isPressed) {                g.setColor(shadow);                g.drawRect(0, 0, w-1, h-1);            } else {                // Using the background color set above                g.drawLine(0, 0, 0, h-1);                g.drawLine(1, 0, w-2, 0);                g.setColor(highlight);    // inner 3D border                g.drawLine(1, 1, 1, h-3);                g.drawLine(2, 1, w-3, 1);                g.setColor(shadow);       // inner 3D border                g.drawLine(1, h-2, w-2, h-2);                g.drawLine(w-2, 1, w-2, h-3);                g.setColor(darkShadow);     // black drop shadow  __|                g.drawLine(0, h-1, w-1, h-1);                g.drawLine(w-1, h-1, w-1, 0);            }            // If there's no room to draw arrow, bail            if(h < 5 || w < 5)      {                g.setColor(origColor);                return;            }            if (isPressed) {                g.translate(1, 1);            }            // Draw the arrow            size = Math.min((h - 4) / 3, (w - 4) / 3);            size = Math.max(size, 2);	    paintTriangle(g, (w - size) / 2, (h - size) / 2,				size, direction, isEnabled);            // Reset the Graphics back to it's original settings            if (isPressed) {                g.translate(-1, -1);	    }	    g.setColor(origColor);        }        public Dimension getPreferredSize() {            return new Dimension(16, 16);        }        public Dimension getMinimumSize() {            return new Dimension(5, 5);        }        public Dimension getMaximumSize() {            return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);        }        	public boolean isFocusTraversable() {	  return false;	}	public void paintTriangle(Graphics g, int x, int y, int size, 					int direction, boolean isEnabled) {	    Color oldColor = g.getColor();	    int mid, i, j;	    j = 0;            size = Math.max(size, 2);	    mid = (size / 2) - 1;		    g.translate(x, y);	    if(isEnabled)		g.setColor(darkShadow);	    else		g.setColor(shadow);            switch(direction)       {            case NORTH:                for(i = 0; i < size; i++)      {                    g.drawLine(mid-i, i, mid+i, i);                }                if(!isEnabled)  {                    g.setColor(highlight);                    g.drawLine(mid-i+2, i, mid+i, i);                }                break;            case SOUTH:                if(!isEnabled)  {                    g.translate(1, 1);                    g.setColor(highlight);                    for(i = size-1; i >= 0; i--)   {                        g.drawLine(mid-i, j, mid+i, j);                        j++;                    }		    g.translate(-1, -1);		    g.setColor(shadow);		}				j = 0;                for(i = size-1; i >= 0; i--)   {                    g.drawLine(mid-i, j, mid+i, j);                    j++;                }                break;            case WEST:                for(i = 0; i < size; i++)      {                    g.drawLine(i, mid-i, i, mid+i);                }                if(!isEnabled)  {                    g.setColor(highlight);                    g.drawLine(i, mid-i+2, i, mid+i);                }                break;            case EAST:                if(!isEnabled)  {                    g.translate(1, 1);                    g.setColor(highlight);                    for(i = size-1; i >= 0; i--)   {                        g.drawLine(j, mid-i, j, mid+i);                        j++;                    }		    g.translate(-1, -1);		    g.setColor(shadow);                }		j = 0;                for(i = size-1; i >= 0; i--)   {                    g.drawLine(j, mid-i, j, mid+i);                    j++;                }		break;            }	    g.translate(-x, -y);		    g.setColor(oldColor);	}	}

⌨️ 快捷键说明

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