javax.swing.border
Class CompoundBorder

java.lang.Object
  extended by javax.swing.border.AbstractBorder
      extended by javax.swing.border.CompoundBorder
All Implemented Interfaces:
Serializable, Border
Direct Known Subclasses:
BorderUIResource.CompoundBorderUIResource

public class CompoundBorder
extends AbstractBorder

A Border that is composed of an interior and an exterior border, where the interior border is tightly nested into the exterior.

See Also:
Serialized Form

Field Summary
protected  Border insideBorder
          The inside border, which is painted between the bordered Component and the outside border.
protected  Border outsideBorder
          The outside border, which is painted outside both the bordered Component and the inside border.
 
Constructor Summary
CompoundBorder()
          Constructs a CompoundBorder whose inside and outside borders are both null.
CompoundBorder(Border outsideBorder, Border insideBorder)
          Constructs a CompoundBorder with the specified inside and outside borders.
 
Method Summary
 Insets getBorderInsets(Component c)
          Determines the insets of this border, which is the sum of the insets of the inside and the outside border.
 Insets getBorderInsets(Component c, Insets insets)
          Changes the specified insets to the insets of this border, which is the sum of the insets of the inside and the outside border.
 Border getInsideBorder()
          Returns the inside border, which is painted between the bordered Component and the outside border.
 Border getOutsideBorder()
          Returns the outside border, which is painted outside both the bordered Component and the inside border.
 boolean isBorderOpaque()
          Determines whether or not this border is opaque.
 void paintBorder(Component c, Graphics g, int x, int y, int width, int height)
          Paints the compound border by first painting the outside border, then painting the inside border tightly nested into the outside.
 
Methods inherited from class javax.swing.border.AbstractBorder
getInteriorRectangle, getInteriorRectangle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

insideBorder

protected Border insideBorder
The inside border, which is painted between the bordered Component and the outside border. It is valid for insideBorder to be null.


outsideBorder

protected Border outsideBorder
The outside border, which is painted outside both the bordered Component and the inside border. It is valid for outsideBorder to be null.

Constructor Detail

CompoundBorder

public CompoundBorder()
Constructs a CompoundBorder whose inside and outside borders are both null. While this does not really make any sense (there exists a class EmptyBorder as well, and not every Component needs to have a border at all), the API specification requires the existence of this constructor.

See Also:
EmptyBorder

CompoundBorder

public CompoundBorder(Border outsideBorder,
                      Border insideBorder)
Constructs a CompoundBorder with the specified inside and outside borders.

Parameters:
outsideBorder - the outside border, which is painted to the outside of both insideBorder and the enclosed component. It is acceptable to pass null, in which case no outside border is painted.
insideBorder - the inside border, which is painted to between outsideBorder and the enclosed component. It is acceptable to pass null, in which case no inside border is painted.
Method Detail

isBorderOpaque

public boolean isBorderOpaque()
Determines whether or not this border is opaque. An opaque border fills every pixel in its area when painting. Partially translucent borders must return false, or ugly artifacts can appear on screen.

Specified by:
isBorderOpaque in interface Border
Overrides:
isBorderOpaque in class AbstractBorder
Returns:
true if both the inside and outside borders are opaque, or false otherwise.

paintBorder

public void paintBorder(Component c,
                        Graphics g,
                        int x,
                        int y,
                        int width,
                        int height)
Paints the compound border by first painting the outside border, then painting the inside border tightly nested into the outside.

Specified by:
paintBorder in interface Border
Overrides:
paintBorder in class AbstractBorder
Parameters:
c - the component whose border is to be painted.
g - the graphics for painting.
x - the horizontal position for painting the border.
y - the vertical position for painting the border.
width - the width of the available area for painting the border.
height - the height of the available area for painting the border.

getBorderInsets

public Insets getBorderInsets(Component c,
                              Insets insets)
Changes the specified insets to the insets of this border, which is the sum of the insets of the inside and the outside border.

Overrides:
getBorderInsets in class AbstractBorder
Parameters:
c - the component in the center of this border.
insets - an Insets object for holding the added insets.
Returns:
the insets object.
See Also:
AbstractBorder.getBorderInsets(Component)

getBorderInsets

public Insets getBorderInsets(Component c)
Determines the insets of this border, which is the sum of the insets of the inside and the outside border.

Specified by:
getBorderInsets in interface Border
Overrides:
getBorderInsets in class AbstractBorder
Parameters:
c - the component in the center of this border.
Returns:
an Insets object whose left, right, top and bottom fields indicate the width of the border at the respective edge, which is zero for the default implementation provided by AbstractButton.
See Also:
AbstractBorder.getBorderInsets(java.awt.Component, java.awt.Insets)

getOutsideBorder

public Border getOutsideBorder()
Returns the outside border, which is painted outside both the bordered Component and the inside border. It is valid for the result to be null.

Returns:
The outside border (possibly null).

getInsideBorder

public Border getInsideBorder()
Returns the inside border, which is painted between the bordered Component and the outside border. It is valid for the result to be null.

Returns:
The inside border (possibly null).