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

📄 basicborders.java

📁 java jdk 1.4的源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * @(#)BasicBorders.java	1.30 03/04/22 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package javax.swing.plaf.basic;import javax.swing.*;import javax.swing.border.*;import javax.swing.plaf.*;import javax.swing.text.JTextComponent;import java.awt.Component;import java.awt.Insets;import java.awt.Dimension;import java.awt.Rectangle;import java.awt.Color;import java.awt.Graphics;import java.io.Serializable;/** * Factory object that can vend Borders appropriate for the basic L & F. * @version 1.30 04/22/03 * @author Georges Saab * @author Amy Fowler */public class BasicBorders {    public static Border getButtonBorder() {	UIDefaults table = UIManager.getLookAndFeelDefaults();	Border buttonBorder = new BorderUIResource.CompoundBorderUIResource(			   new BasicBorders.ButtonBorder(					   table.getColor("Button.shadow"),                                           table.getColor("Button.darkShadow"),                                           table.getColor("Button.light"),                                           table.getColor("Button.highlight")),	       			     new MarginBorder());	return buttonBorder;    }    public static Border getRadioButtonBorder() {	UIDefaults table = UIManager.getLookAndFeelDefaults();	Border radioButtonBorder = new BorderUIResource.CompoundBorderUIResource(			   new BasicBorders.RadioButtonBorder(					   table.getColor("RadioButton.shadow"),                                           table.getColor("RadioButton.darkShadow"),                                           table.getColor("RadioButton.light"),                                           table.getColor("RadioButton.highlight")),	       			     new MarginBorder());	return radioButtonBorder;    }    public static Border getToggleButtonBorder() {	UIDefaults table = UIManager.getLookAndFeelDefaults();	Border toggleButtonBorder = new BorderUIResource.CompoundBorderUIResource(			             new BasicBorders.ToggleButtonBorder( 					   table.getColor("ToggleButton.shadow"),                                           table.getColor("ToggleButton.darkShadow"),                                           table.getColor("ToggleButton.light"),                                           table.getColor("ToggleButton.highlight")),				     new MarginBorder());	return toggleButtonBorder;    }    public static Border getMenuBarBorder() {	UIDefaults table = UIManager.getLookAndFeelDefaults();	Border menuBarBorder = new BasicBorders.MenuBarBorder(				        table.getColor("MenuBar.shadow"),                                        table.getColor("MenuBar.highlight")                                   );	return menuBarBorder;    }    public static Border getSplitPaneBorder() {	UIDefaults table = UIManager.getLookAndFeelDefaults();	Border splitPaneBorder = new BasicBorders.SplitPaneBorder(				     table.getColor("SplitPane.highlight"),				     table.getColor("SplitPane.darkShadow"));	return splitPaneBorder;    }    /**     * Returns a border instance for a JSplitPane divider     * @since 1.3     */    public static Border getSplitPaneDividerBorder() {	UIDefaults table = UIManager.getLookAndFeelDefaults();	Border splitPaneBorder = new BasicBorders.SplitPaneDividerBorder(				     table.getColor("SplitPane.highlight"),				     table.getColor("SplitPane.darkShadow"));	return splitPaneBorder;    }    public static Border getTextFieldBorder() {	UIDefaults table = UIManager.getLookAndFeelDefaults();	Border textFieldBorder = new BasicBorders.FieldBorder(                                           table.getColor("TextField.shadow"),                                           table.getColor("TextField.darkShadow"),                                           table.getColor("TextField.light"),                                           table.getColor("TextField.highlight"));	return textFieldBorder;    }    public static Border getProgressBarBorder() {	UIDefaults table = UIManager.getLookAndFeelDefaults();	Border progressBarBorder = new BorderUIResource.LineBorderUIResource(Color.green, 2);	return progressBarBorder;    }    public static Border getInternalFrameBorder() {	UIDefaults table = UIManager.getLookAndFeelDefaults();	Border internalFrameBorder = new BorderUIResource.CompoundBorderUIResource(				new BevelBorder(BevelBorder.RAISED,					table.getColor("InternalFrame.borderLight"),                                        table.getColor("InternalFrame.borderHighlight"),                                        table.getColor("InternalFrame.borderDarkShadow"),                                        table.getColor("InternalFrame.borderShadow")),				BorderFactory.createLineBorder(					table.getColor("InternalFrame.borderColor"), 1));	return internalFrameBorder;    }     /**     * Special thin border for rollover toolbar buttons.     */    public static class RolloverButtonBorder extends ButtonBorder {        public RolloverButtonBorder(Color shadow, Color darkShadow,                                   Color highlight, Color lightHighlight) {            super(shadow, darkShadow, highlight, lightHighlight);        }        public void paintBorder( Component c, Graphics g, int x, int y, int w, int h ) {            AbstractButton b = (AbstractButton) c;            ButtonModel model = b.getModel();	    Color shade = shadow;	    Component p = b.getParent();	    if (p != null && p.getBackground().equals(shadow)) {		shade = darkShadow;	    }            if ((model.isRollover() && !(model.isPressed() && !model.isArmed())) ||                model.isSelected()) {		Color oldColor = g.getColor();		g.translate(x, y);		if (model.isPressed() && model.isArmed() || model.isSelected()) {		    // Draw the pressd button		    g.setColor(shade);		    g.drawRect(0, 0, w-1, h-1);		    g.setColor(lightHighlight);		    g.drawLine(w-1, 0, w-1, h-1);		    g.drawLine(0, h-1, w-1, h-1);		} else {		    // Draw a rollover button		    g.setColor(lightHighlight);		    g.drawRect(0, 0, w-1, h-1);		    g.setColor(shade);		    g.drawLine(w-1, 0, w-1, h-1);		    g.drawLine(0, h-1, w-1, h-1);		}		g.translate(-x, -y);		g.setColor(oldColor);            }        }    }    /**     * A border which is like a Margin border but it will only honor the margin     * if the margin has been explicitly set by the developer.     *      * Note: This is identical to the package private class     * MetalBorders.RolloverMarginBorder and should probably be consolidated.     */    static class RolloverMarginBorder extends EmptyBorder {		public RolloverMarginBorder() {	    super(3,3,3,3); // hardcoded margin for JLF requirements.	}	public Insets getBorderInsets(Component c) {	    return getBorderInsets(c, new Insets(0,0,0,0));	}	public Insets getBorderInsets(Component c, Insets insets) {	    Insets margin = null;	    if (c instanceof AbstractButton) {		margin = ((AbstractButton)c).getMargin();	    }	    if (margin == null || margin instanceof UIResource) {		// default margin so replace		insets.left = left;		insets.top = top;		insets.right = right;		insets.bottom = bottom;	    } else {		// Margin which has been explicitly set by the user.		insets.left = margin.left;		insets.top = margin.top;		insets.right = margin.right;		insets.bottom = margin.bottom;	    }	    return insets;	}    }   public static class ButtonBorder extends AbstractBorder implements UIResource {        protected Color shadow;        protected Color darkShadow;        protected Color highlight;        protected Color lightHighlight;        public ButtonBorder(Color shadow, Color darkShadow,                             Color highlight, Color lightHighlight) {            this.shadow = shadow;            this.darkShadow = darkShadow;            this.highlight = highlight;             this.lightHighlight = lightHighlight;        }        public void paintBorder(Component c, Graphics g, int x, int y,                             int width, int height) {            boolean isPressed = false;            boolean isDefault = false;                  if (c instanceof AbstractButton) {	        AbstractButton b = (AbstractButton)c;	        ButtonModel model = b.getModel();	   	        isPressed = model.isPressed() && model.isArmed();                if (c instanceof JButton) {                    isDefault = ((JButton)c).isDefaultButton();                }            }	            BasicGraphicsUtils.drawBezel(g, x, y, width, height, 				   isPressed, isDefault, shadow,                                   darkShadow, highlight, lightHighlight);        }        public Insets getBorderInsets(Component c)       {            return getBorderInsets(c, new Insets(0,0,0,0));        }        public Insets getBorderInsets(Component c, Insets insets)       {            // leave room for default visual            insets.top = 2;            insets.left = insets.bottom = insets.right = 3;	    return insets;        }    }    public static class ToggleButtonBorder extends ButtonBorder {        public ToggleButtonBorder(Color shadow, Color darkShadow,                                   Color highlight, Color lightHighlight) {            super(shadow, darkShadow, highlight, lightHighlight);        }        public void paintBorder(Component c, Graphics g, int x, int y,                                 int width, int height) {                BasicGraphicsUtils.drawBezel(g, x, y, width, height,                                              false, false,                                             shadow, darkShadow,                                              highlight, lightHighlight);	}        public Insets getBorderInsets(Component c)       {            return new Insets(2, 2, 2, 2);        }        public Insets getBorderInsets(Component c, Insets insets)       {            insets.top = insets.left = insets.bottom = insets.right = 2;	    return insets;        }    }    public static class RadioButtonBorder extends ButtonBorder {        public RadioButtonBorder(Color shadow, Color darkShadow,                                  Color highlight, Color lightHighlight) {            super(shadow, darkShadow, highlight, lightHighlight);        }              public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {	  	    if (c instanceof AbstractButton) {	        AbstractButton b = (AbstractButton)c;	        ButtonModel model = b.getModel();	      	        if (model.isArmed() && model.isPressed() || model.isSelected()) {		    BasicGraphicsUtils.drawLoweredBezel(g, x, y, width, height,                                                        shadow, darkShadow,                                                         highlight, lightHighlight);

⌨️ 快捷键说明

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