FileDocCategorySizeDatePackage
LineBorder.javaAPI DocJava SE 6 API4891Tue Jun 10 00:26:42 BST 2008javax.swing.border

LineBorder

public class LineBorder extends AbstractBorder
A class which implements a line border of arbitrary thickness and of a single color.

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.25 04/07/06
author
David Kloba

Fields Summary
private static Border
blackLine
private static Border
grayLine
protected int
thickness
protected Color
lineColor
protected boolean
roundedCorners
Constructors Summary
public LineBorder(Color color)
Creates a line border with the specified color and a thickness = 1.

param
color the color for the border

        this(color, 1, false);
    
public LineBorder(Color color, int thickness)
Creates a line border with the specified color and thickness.

param
color the color of the border
param
thickness the thickness of the border

        this(color, thickness, false);
    
public LineBorder(Color color, int thickness, boolean roundedCorners)
Creates a line border with the specified color, thickness, and corner shape.

param
color the color of the border
param
thickness the thickness of the border
param
roundedCorners whether or not border corners should be round
since
1.3

        lineColor = color;
        this.thickness = thickness;
	this.roundedCorners = roundedCorners;
    
Methods Summary
public static javax.swing.border.BordercreateBlackLineBorder()
Convenience method for getting the Color.black LineBorder of thickness 1.

        if (blackLine == null) {
            blackLine = new LineBorder(Color.black, 1);
        }
        return blackLine;
    
public static javax.swing.border.BordercreateGrayLineBorder()
Convenience method for getting the Color.gray LineBorder of thickness 1.

        if (grayLine == null) {
            grayLine = new LineBorder(Color.gray, 1);
        }
        return grayLine;
    
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(thickness, thickness, thickness, thickness);
    
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 = thickness;
        return insets;
    
public java.awt.ColorgetLineColor()
Returns the color of the border.

        return lineColor;
    
public booleangetRoundedCorners()
Returns whether this border will be drawn with rounded corners.

since
1.3

        return roundedCorners;
    
public intgetThickness()
Returns the thickness of the border.

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

 
        return !roundedCorners; 
    
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

        Color oldColor = g.getColor();
        int i;

	/// PENDING(klobad) How/should do we support Roundtangles?
        g.setColor(lineColor);
        for(i = 0; i < thickness; i++)  {
	    if(!roundedCorners)
                g.drawRect(x+i, y+i, width-i-i-1, height-i-i-1);
	    else
                g.drawRoundRect(x+i, y+i, width-i-i-1, height-i-i-1, thickness, thickness);
        }
        g.setColor(oldColor);