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

📄 metalborders.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * @(#)MetalBorders.java	1.42 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package javax.swing.plaf.metal;import javax.swing.*;import javax.swing.border.*;import javax.swing.plaf.*;import javax.swing.plaf.basic.BasicBorders;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.Dialog;import java.awt.Frame;import java.awt.Graphics;import java.awt.Window;import java.io.Serializable;/** * Factory object that can vend Borders appropriate for the metal L & F. * @author Steve Wilson * @version 1.42 11/17/05 */public class MetalBorders {    /**     * Client property indicating the button shouldn't provide a rollover     * indicator. Only used with the Ocean theme.     */    static Object NO_BUTTON_ROLLOVER = new StringBuffer("NoButtonRollover");    public static class Flush3DBorder extends AbstractBorder implements UIResource{        private static final Insets insets = new Insets(2, 2, 2, 2);        public void paintBorder(Component c, Graphics g, int x, int y,			  int w, int h) {            if (c.isEnabled()) {                MetalUtils.drawFlush3DBorder(g, x, y, w, h);            } else {                MetalUtils.drawDisabledBorder(g, x, y, w, h);            }        }        public Insets getBorderInsets(Component c)       {            return insets;        }        public Insets getBorderInsets(Component c, Insets newInsets) {	    newInsets.top = insets.top;	    newInsets.left = insets.left;	    newInsets.bottom = insets.bottom;	    newInsets.right = insets.right;	    return newInsets;	}	        }    public static class ButtonBorder extends AbstractBorder implements UIResource {        protected static Insets borderInsets = new Insets( 3, 3, 3, 3 );        public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) {            if (MetalLookAndFeel.usingOcean()) {                paintOceanBorder(c, g, x, y, w, h);                return;            }            AbstractButton button = (AbstractButton)c;	    ButtonModel model = button.getModel();	    if ( model.isEnabled() ) {                boolean isPressed = model.isPressed() && model.isArmed();                boolean isDefault = (button instanceof JButton && ((JButton)button).isDefaultButton());	        if (isPressed && isDefault) {                    MetalUtils.drawDefaultButtonPressedBorder(g, x, y, w, h);                } else if (isPressed) {                    MetalUtils.drawPressed3DBorder( g, x, y, w, h );	        } else if (isDefault) {                    MetalUtils.drawDefaultButtonBorder( g, x, y, w, h, false);                } else {                    MetalUtils.drawButtonBorder( g, x, y, w, h, false);	        }	    } else { // disabled state	        MetalUtils.drawDisabledBorder( g, x, y, w-1, h-1 );	    }        }        private void paintOceanBorder(Component c, Graphics g, int x, int y,                                      int w, int h) {            AbstractButton button = (AbstractButton)c;	    ButtonModel model = ((AbstractButton)c).getModel();            g.translate(x, y);            if (MetalUtils.isToolBarButton(button)) {                if (model.isEnabled()) {                    if (model.isPressed()) {                        g.setColor(MetalLookAndFeel.getWhite());                        g.fillRect(1, h - 1, w - 1, 1);                        g.fillRect(w - 1, 1, 1, h - 1);                        g.setColor(MetalLookAndFeel.getControlDarkShadow());                        g.drawRect(0, 0, w - 2, h - 2);                        g.fillRect(1, 1, w - 3, 1);                    }                    else if (model.isSelected() || model.isRollover()) {                        g.setColor(MetalLookAndFeel.getWhite());                        g.fillRect(1, h - 1, w - 1, 1);                        g.fillRect(w - 1, 1, 1, h - 1);                        g.setColor(MetalLookAndFeel.getControlDarkShadow());                        g.drawRect(0, 0, w - 2, h - 2);                    }                    else {                        g.setColor(MetalLookAndFeel.getWhite());                        g.drawRect(1, 1, w - 2, h - 2);                        g.setColor(UIManager.getColor(                                "Button.toolBarBorderBackground"));                        g.drawRect(0, 0, w - 2, h - 2);                    }                }                else {                   g.setColor(UIManager.getColor(                           "Button.disabledToolBarBorderBackground"));                   g.drawRect(0, 0, w - 2, h - 2);                 }            }	    else if (model.isEnabled()) {                boolean pressed = model.isPressed();                boolean armed = model.isArmed();                if ((c instanceof JButton) && ((JButton)c).isDefaultButton()) {                    g.setColor(MetalLookAndFeel.getControlDarkShadow());                    g.drawRect(0, 0, w - 1, h - 1);                    g.drawRect(1, 1, w - 3, h - 3);                }                else if (pressed) {                    g.setColor(MetalLookAndFeel.getControlDarkShadow());                    g.fillRect(0, 0, w, 2);                    g.fillRect(0, 2, 2, h - 2);                    g.fillRect(w - 1, 1, 1, h - 1);                    g.fillRect(1, h - 1, w - 2, 1);                }                else if (model.isRollover() && button.getClientProperty(                               NO_BUTTON_ROLLOVER) == null) {                    g.setColor(MetalLookAndFeel.getPrimaryControl());                    g.drawRect(0, 0, w - 1, h - 1);                    g.drawRect(2, 2, w - 5, h - 5);                    g.setColor(MetalLookAndFeel.getControlDarkShadow());                    g.drawRect(1, 1, w - 3, h - 3);                }                else {                    g.setColor(MetalLookAndFeel.getControlDarkShadow());                    g.drawRect(0, 0, w - 1, h - 1);                }            }            else {                g.setColor(MetalLookAndFeel.getInactiveControlTextColor());                g.drawRect(0, 0, w - 1, h - 1);                if ((c instanceof JButton) && ((JButton)c).isDefaultButton()) {                    g.drawRect(1, 1, w - 3, h - 3);                }            }        }        public Insets getBorderInsets( Component c ) {            return borderInsets;        }        public Insets getBorderInsets(Component c, Insets newInsets) {	    newInsets.top = borderInsets.top;	    newInsets.left = borderInsets.left;	    newInsets.bottom = borderInsets.bottom;	    newInsets.right = borderInsets.right;	    return newInsets;	}    }    public static class InternalFrameBorder extends AbstractBorder implements UIResource {        private static final Insets insets = new Insets(5, 5, 5, 5);        private static final int corner = 14;        public void paintBorder(Component c, Graphics g, int x, int y,			  int w, int h) {            Color background;            Color highlight;            Color shadow;            if (c instanceof JInternalFrame && ((JInternalFrame)c).isSelected()) {                background = MetalLookAndFeel.getPrimaryControlDarkShadow();	        highlight = MetalLookAndFeel.getPrimaryControlShadow();	        shadow = MetalLookAndFeel.getPrimaryControlInfo();            } else {                background = MetalLookAndFeel.getControlDarkShadow();	        highlight = MetalLookAndFeel.getControlShadow();	        shadow = MetalLookAndFeel.getControlInfo();            }              g.setColor(background);              // Draw outermost lines              g.drawLine( 1, 0, w-2, 0);              g.drawLine( 0, 1, 0, h-2);              g.drawLine( w-1, 1, w-1, h-2);              g.drawLine( 1, h-1, w-2, h-1);              // Draw the bulk of the border              for (int i = 1; i < 5; i++) {	          g.drawRect(x+i,y+i,w-(i*2)-1, h-(i*2)-1);              }              if (c instanceof JInternalFrame &&                               ((JInternalFrame)c).isResizable()) {                  g.setColor(highlight);                  // Draw the Long highlight lines                  g.drawLine( corner+1, 3, w-corner, 3);                  g.drawLine( 3, corner+1, 3, h-corner);                  g.drawLine( w-2, corner+1, w-2, h-corner);                  g.drawLine( corner+1, h-2, w-corner, h-2);                  g.setColor(shadow);                  // Draw the Long shadow lines                  g.drawLine( corner, 2, w-corner-1, 2);                  g.drawLine( 2, corner, 2, h-corner-1);                  g.drawLine( w-3, corner, w-3, h-corner-1);                  g.drawLine( corner, h-3, w-corner-1, h-3);              }          }          public Insets getBorderInsets(Component c)       {              return insets;          }          public Insets getBorderInsets(Component c, Insets newInsets) {	      newInsets.top = insets.top;	      newInsets.left = insets.left;	      newInsets.bottom = insets.bottom;	      newInsets.right = insets.right;	      return newInsets;	  }    }    /**     * Border for a Frame.     * @since 1.4     */    static class FrameBorder extends AbstractBorder implements UIResource {        private static final Insets insets = new Insets(5, 5, 5, 5);        private static final int corner = 14;        public void paintBorder(Component c, Graphics g, int x, int y,            int w, int h) {            Color background;            Color highlight;            Color shadow;            Window window = SwingUtilities.getWindowAncestor(c);            if (window != null && window.isActive()) {                background = MetalLookAndFeel.getPrimaryControlDarkShadow();                highlight = MetalLookAndFeel.getPrimaryControlShadow();                shadow = MetalLookAndFeel.getPrimaryControlInfo();            } else {                background = MetalLookAndFeel.getControlDarkShadow();                highlight = MetalLookAndFeel.getControlShadow();                shadow = MetalLookAndFeel.getControlInfo();            }            g.setColor(background);            // Draw outermost lines            g.drawLine( x+1, y+0, x+w-2, y+0);            g.drawLine( x+0, y+1, x+0, y +h-2);            g.drawLine( x+w-1, y+1, x+w-1, y+h-2);            g.drawLine( x+1, y+h-1, x+w-2, y+h-1);            // Draw the bulk of the border            for (int i = 1; i < 5; i++) {                g.drawRect(x+i,y+i,w-(i*2)-1, h-(i*2)-1);            }            if ((window instanceof Frame) && ((Frame) window).isResizable()) {                g.setColor(highlight);                // Draw the Long highlight lines                g.drawLine( corner+1, 3, w-corner, 3);                g.drawLine( 3, corner+1, 3, h-corner);                g.drawLine( w-2, corner+1, w-2, h-corner);                g.drawLine( corner+1, h-2, w-corner, h-2);                g.setColor(shadow);                // Draw the Long shadow lines                g.drawLine( corner, 2, w-corner-1, 2);                g.drawLine( 2, corner, 2, h-corner-1);                g.drawLine( w-3, corner, w-3, h-corner-1);                g.drawLine( corner, h-3, w-corner-1, h-3);            }        }        public Insets getBorderInsets(Component c)       {            return insets;        }    	          public Insets getBorderInsets(Component c, Insets newInsets)         {            newInsets.top = insets.top;            newInsets.left = insets.left;            newInsets.bottom = insets.bottom;            newInsets.right = insets.right;            return newInsets;        }    }    /**     * Border for a Frame.     * @since 1.4     */    static class DialogBorder extends AbstractBorder implements UIResource     {		        private static final Insets insets = new Insets(5, 5, 5, 5);        private static final int corner = 14;        protected Color getActiveBackground()        {            return MetalLookAndFeel.getPrimaryControlDarkShadow();        }        protected Color getActiveHighlight()        {            return MetalLookAndFeel.getPrimaryControlShadow();        }        protected Color getActiveShadow()        {            return MetalLookAndFeel.getPrimaryControlInfo();        }

⌨️ 快捷键说明

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