FileDocCategorySizeDatePackage
EtchedBorder.javaAPI DocJava SE 5 API6129Fri Aug 26 14:58:00 BST 2005javax.swing.border

EtchedBorder

public class EtchedBorder extends AbstractBorder
A class which implements a simple etched border which can either be etched-in or etched-out. If no highlight/shadow colors are initialized when the border is created, then these colors will be dynamically derived from the background color of the component argument passed into the paintBorder() method.

Warning: 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 JavaBeansTM has been added to the java.beans package. Please see {@link java.beans.XMLEncoder}.

version
1.18 12/19/03
author
David Kloba
author
Amy Fowler

Fields Summary
public static final int
RAISED
Raised etched type.
public static final int
LOWERED
Lowered etched type.
protected int
etchType
protected Color
highlight
protected Color
shadow
Constructors Summary
public EtchedBorder()
Creates a lowered etched border whose colors will be derived from the background color of the component passed into the paintBorder method.


                                
         
        this(LOWERED);
    
public EtchedBorder(int etchType)
Creates an etched border with the specified etch-type whose colors will be derived from the background color of the component passed into the paintBorder method.

param
etchType the type of etch to be drawn by the border

        this(etchType, null, null);
    
public EtchedBorder(Color highlight, Color shadow)
Creates a lowered etched border with the specified highlight and shadow colors.

param
highlight the color to use for the etched highlight
param
shadow the color to use for the etched shadow

        this(LOWERED, highlight, shadow);
    
public EtchedBorder(int etchType, Color highlight, Color shadow)
Creates an etched border with the specified etch-type, highlight and shadow colors.

param
etchType the type of etch to be drawn by the border
param
highlight the color to use for the etched highlight
param
shadow the color to use for the etched shadow

        this.etchType = etchType;
        this.highlight = highlight;
        this.shadow = shadow;
    
Methods Summary
public java.awt.InsetsgetBorderInsets(java.awt.Component c)
Returns the insets of the border.

param
c the component for which this border insets value applies

        return new Insets(2, 2, 2, 2);
    
public java.awt.InsetsgetBorderInsets(java.awt.Component c, java.awt.Insets insets)
Reinitialize the insets parameter with this Border's current Insets.

param
c the component for which this border insets value applies
param
insets the object to be reinitialized

        insets.left = insets.top = insets.right = insets.bottom = 2;
        return insets;
    
public intgetEtchType()
Returns which etch-type is set on the etched border.

        return etchType;
    
public java.awt.ColorgetHighlightColor(java.awt.Component c)
Returns the highlight color of the etched border when rendered on the specified component. If no highlight color was specified at instantiation, the highlight color is derived from the specified component's background color.

param
c the component for which the highlight may be derived

        return highlight != null? highlight : 
                                       c.getBackground().brighter();
    
public java.awt.ColorgetHighlightColor()
Returns the highlight color of the etched border. Will return null if no highlight color was specified at instantiation.

        return highlight;
    
public java.awt.ColorgetShadowColor(java.awt.Component c)
Returns the shadow color of the etched border when rendered on the specified component. If no shadow color was specified at instantiation, the shadow color is derived from the specified component's background color.

param
c the component for which the shadow may be derived

        return shadow != null? shadow : c.getBackground().darker();
    
public java.awt.ColorgetShadowColor()
Returns the shadow color of the etched border. Will return null if no shadow color was specified at instantiation.

        return shadow;
    
public booleanisBorderOpaque()
Returns whether or not the border is opaque.

 return true; 
public voidpaintBorder(java.awt.Component c, java.awt.Graphics g, int x, int y, int width, int height)
Paints the border for the specified component with the specified position and size.

param
c the component for which this border is being painted
param
g the paint graphics
param
x the x position of the painted border
param
y the y position of the painted border
param
width the width of the painted border
param
height the height of the painted border

	int w = width;
	int h = height;
	
	g.translate(x, y);
	
	g.setColor(etchType == LOWERED? getShadowColor(c) : getHighlightColor(c));
	g.drawRect(0, 0, w-2, h-2);
	
	g.setColor(etchType == LOWERED? getHighlightColor(c) : getShadowColor(c));
	g.drawLine(1, h-3, 1, 1);
	g.drawLine(1, 1, w-3, 1);
	
	g.drawLine(0, h-1, w-1, h-1);
	g.drawLine(w-1, h-1, w-1, 0);
	
	g.translate(-x, -y);