javax.swing.border
Class TitledBorder

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

public class TitledBorder
extends AbstractBorder

A border that paints a title on top of another border.

See Also:
Serialized Form

Field Summary
static int ABOVE_BOTTOM
          A value for the titlePosition property that vertically positions the title text above the bottom line of the border.
static int ABOVE_TOP
          A value for the titlePosition property that vertically positions the title text above the top line of the border.
static int BELOW_BOTTOM
          A value for the titlePosition property that vertically positions the title text below the bottom line of the border.
static int BELOW_TOP
          A value for the titlePosition property that vertically positions the title text below the top line of the border.
protected  Border border
          The border underneath the title.
static int BOTTOM
          A value for the titlePosition property that vertically positions the title text at the center of the bottom line of the border.
static int CENTER
          A value for the titleJustification property that horizontally aligns the title text with the center of the border.
static int DEFAULT_JUSTIFICATION
          A value for the titleJustification property that horizontally aligns the title text with either the left or the right edge of the border, depending on the orientation of the component nested into the border.
static int DEFAULT_POSITION
          A value for the titlePosition property that vertically positions the title text at the default vertical position, which is in the middle of the top line of the border.
protected static int EDGE_SPACING
          The number of pixels between the inside of border and the bordered component.
static int LEADING
          A value for the titleJustification property that horizontally aligns the title text with either the left or the right edge of the border, depending on the orientation of the component nested into the border.
static int LEFT
          A value for the titleJustification property that horizontally aligns the title text with the left-hand edge of the border.
static int RIGHT
          A value for the titleJustification property that horizontally aligns the title text with the right-hand edge of the border.
protected static int TEXT_INSET_H
          The number of pixels between the outside of this TitledBorder and the beginning (if left-aligned) or end (if right-aligned) of the title text.
protected static int TEXT_SPACING
          The number of pixels between the title text and border.
protected  String title
          The title, or null to display no title.
protected  Color titleColor
          The color for displaying the title text.
protected  Font titleFont
          The font for displaying the title text.
protected  int titleJustification
          The horizontal alignment of the title text in relation to the border, which is one of LEFT, CENTER, RIGHT, LEADING, TRAILING, or DEFAULT_JUSTIFICATION.
protected  int titlePosition
          The vertical position of the title text relative to the border, which is one of ABOVE_TOP, TOP, BELOW_TOP, ABOVE_BOTTOM, BOTTOM, BELOW_BOTTOM, or DEFAULT_POSITION.
static int TOP
          A value for the titlePosition property that vertically positions the title text at the middle of the top line of the border.
static int TRAILING
          A value for the titleJustification property that horizontally aligns the title text with either the right or the left edge of the border, depending on the orientation of the component nested into the border.
 
Constructor Summary
TitledBorder(Border border)
          Constructs an initially untitled TitledBorder given another border.
TitledBorder(Border border, String title)
          Constructs a TitledBorder given its border and title text.
TitledBorder(Border border, String title, int titleJustification, int titlePosition)
          Constructs a TitledBorder given its border, title text, horizontal alignment, and vertical position.
TitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont)
          Constructs a TitledBorder given its border, title text, horizontal alignment, vertical position, and font.
TitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont, Color titleColor)
          Constructs a TitledBorder given its border, title text, horizontal alignment, vertical position, font, and color.
TitledBorder(String title)
          Constructs a TitledBorder given the text of its title.
 
Method Summary
 Border getBorder()
          Retrieves the border underneath the title.
 Insets getBorderInsets(Component c)
          Measures the width of this border.
 Insets getBorderInsets(Component c, Insets insets)
          Measures the width of this border, storing the results into a pre-existing Insets object.
protected  Font getFont(Component c)
          Returns the font that is used for displaying the title text for a given Component.
 Dimension getMinimumSize(Component c)
          Calculates the minimum size needed for displaying the border and its title.
 String getTitle()
          Returns the text of the title.
 Color getTitleColor()
          Retrieves the color for displaying the title text.
 Font getTitleFont()
          Retrieves the font for displaying the title text.
 int getTitleJustification()
          Returns the horizontal alignment of the title text in relation to the border.
 int getTitlePosition()
          Returns the vertical position of the title text in relation to the border.
 boolean isBorderOpaque()
          Returns false, indicating that there are pixels inside the area of this border where the background shines through.
 void paintBorder(Component c, Graphics g, int x, int y, int width, int height)
          Paints the border and the title text.
 void setBorder(Border border)
          Sets the border underneath the title.
 void setTitle(String title)
          Sets the text of the title.
 void setTitleColor(Color titleColor)
          Sets the color for displaying the title text.
 void setTitleFont(Font titleFont)
          Sets the font for displaying the title text.
 void setTitleJustification(int titleJustification)
          Sets the horizontal alignment of the title text in relation to the border.
 void setTitlePosition(int titlePosition)
          Sets the vertical position of the title text in relation to the border.
 
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

DEFAULT_POSITION

public static final int DEFAULT_POSITION
A value for the titlePosition property that vertically positions the title text at the default vertical position, which is in the middle of the top line of the border.

See Also:
getTitlePosition(), setTitlePosition(int), Constant Field Values

ABOVE_TOP

public static final int ABOVE_TOP
A value for the titlePosition property that vertically positions the title text above the top line of the border.

See Also:
getTitlePosition(), setTitlePosition(int), Constant Field Values

TOP

public static final int TOP
A value for the titlePosition property that vertically positions the title text at the middle of the top line of the border.

See Also:
getTitlePosition(), setTitlePosition(int), Constant Field Values

BELOW_TOP

public static final int BELOW_TOP
A value for the titlePosition property that vertically positions the title text below the top line of the border.

See Also:
getTitlePosition(), setTitlePosition(int), Constant Field Values

ABOVE_BOTTOM

public static final int ABOVE_BOTTOM
A value for the titlePosition property that vertically positions the title text above the bottom line of the border.

See Also:
getTitlePosition(), setTitlePosition(int), Constant Field Values

BOTTOM

public static final int BOTTOM
A value for the titlePosition property that vertically positions the title text at the center of the bottom line of the border.

See Also:
getTitlePosition(), setTitlePosition(int), Constant Field Values

BELOW_BOTTOM

public static final int BELOW_BOTTOM
A value for the titlePosition property that vertically positions the title text below the bottom line of the border.

See Also:
getTitlePosition(), setTitlePosition(int), Constant Field Values

DEFAULT_JUSTIFICATION

public static final int DEFAULT_JUSTIFICATION
A value for the titleJustification property that horizontally aligns the title text with either the left or the right edge of the border, depending on the orientation of the component nested into the border. If the component orientation is left-to-right, the title text is aligned with the left edge; otherwise, it is aligned with the right edge. This is the same behavior as with LEADING.

See Also:
getTitleJustification(), setTitleJustification(int), ComponentOrientation.isLeftToRight(), Constant Field Values

LEFT

public static final int LEFT
A value for the titleJustification property that horizontally aligns the title text with the left-hand edge of the border.

See Also:
getTitleJustification(), setTitleJustification(int), Constant Field Values

CENTER

public static final int CENTER
A value for the titleJustification property that horizontally aligns the title text with the center of the border.

See Also:
getTitleJustification(), setTitleJustification(int), Constant Field Values

RIGHT

public static final int RIGHT
A value for the titleJustification property that horizontally aligns the title text with the right-hand edge of the border.

See Also:
getTitleJustification(), setTitleJustification(int), Constant Field Values

LEADING

public static final int LEADING
A value for the titleJustification property that horizontally aligns the title text with either the left or the right edge of the border, depending on the orientation of the component nested into the border. If the component orientation is left-to-right, the title text is aligned with the left edge; otherwise, it is aligned with the right edge. This is the same behavior as with DEFAULT_JUSTIFICATION.

See Also:
getTitleJustification(), setTitleJustification(int), ComponentOrientation.isLeftToRight(), Constant Field Values

TRAILING

public static final int TRAILING
A value for the titleJustification property that horizontally aligns the title text with either the right or the left edge of the border, depending on the orientation of the component nested into the border. If the component orientation is left-to-right, the title text is aligned with the right edge; otherwise, it is aligned with the left edge.

See Also:
getTitleJustification(), setTitleJustification(int), ComponentOrientation.isLeftToRight(), Constant Field Values

EDGE_SPACING

protected static final int EDGE_SPACING
The number of pixels between the inside of border and the bordered component.

See Also:
Constant Field Values

TEXT_INSET_H

protected static final int TEXT_INSET_H
The number of pixels between the outside of this TitledBorder and the beginning (if left-aligned) or end (if right-aligned) of the title text.

See Also:
Constant Field Values

TEXT_SPACING

protected static final int TEXT_SPACING
The number of pixels between the title text and border. This value is only relevant if the title text does not intersect border. No intersection occurs if titlePosition is one of ABOVE_TOP, BELOW_TOP, ABOVE_BOTTOM, or BELOW_BOTTOM.

See Also:
Constant Field Values

title

protected String title
The title, or null to display no title.


border

protected Border border
The border underneath the title. If this value is null, the border will be retrieved from the UIManager’s defaults table using the key TitledBorder.border.


titlePosition

protected int titlePosition
The vertical position of the title text relative to the border, which is one of ABOVE_TOP, TOP, BELOW_TOP, ABOVE_BOTTOM, BOTTOM, BELOW_BOTTOM, or DEFAULT_POSITION.


titleJustification

protected int titleJustification
The horizontal alignment of the title text in relation to the border, which is one of LEFT, CENTER, RIGHT, LEADING, TRAILING, or DEFAULT_JUSTIFICATION.


titleFont

protected Font titleFont
The font for displaying the title text. If this value is null, the font will be retrieved from the UIManager’s defaults table using the key TitledBorder.font.


titleColor

protected Color titleColor
The color for displaying the title text. If this value is null, the color will be retrieved from the UIManager’s defaults table using the key TitledBorder.titleColor.

Constructor Detail

TitledBorder

public TitledBorder(String title)
Constructs a TitledBorder given the text of its title.

Parameters:
title - the title text, or null to use no title text.

TitledBorder

public TitledBorder(Border border)
Constructs an initially untitled TitledBorder given another border.

Parameters:
border - the border underneath the title, or null to use a default from the current look and feel.

TitledBorder

public TitledBorder(Border border,
                    String title)
Constructs a TitledBorder given its border and title text.

Parameters:
border - the border underneath the title, or null to use a default from the current look and feel.
title - the title text, or null to use no title text.

TitledBorder

public TitledBorder(Border border,
                    String title,
                    int titleJustification,
                    int titlePosition)
Constructs a TitledBorder given its border, title text, horizontal alignment, and vertical position.

Parameters:
border - the border underneath the title, or null to use a default from the current look and feel.
title - the title text, or null to use no title text.
titleJustification - the horizontal alignment of the title text in relation to the border. The value must be one of LEFT, CENTER, RIGHT, LEADING, TRAILING, or DEFAULT_JUSTIFICATION.
titlePosition - the vertical position of the title text in relation to the border. The value must be one of ABOVE_TOP, TOP, BELOW_TOP, ABOVE_BOTTOM, BOTTOM, BELOW_BOTTOM, or DEFAULT_POSITION.
Throws:
IllegalArgumentException - if titleJustification or titlePosition have an unsupported value.

TitledBorder

public TitledBorder(Border border,
                    String title,
                    int titleJustification,
                    int titlePosition,
                    Font titleFont)
Constructs a TitledBorder given its border, title text, horizontal alignment, vertical position, and font.

Parameters:
border - the border underneath the title, or null to use a default from the current look and feel.
title - the title text, or null to use no title text.
titleJustification - the horizontal alignment of the title text in relation to the border. The value must be one of LEFT, CENTER, RIGHT, LEADING, TRAILING, or DEFAULT_JUSTIFICATION.
titlePosition - the vertical position of the title text in relation to the border. The value must be one of ABOVE_TOP, TOP, BELOW_TOP, ABOVE_BOTTOM, BOTTOM, BELOW_BOTTOM, or DEFAULT_POSITION.
titleFont - the font for the title text, or null to use a default from the current look and feel.
Throws:
IllegalArgumentException - if titleJustification or titlePosition have an unsupported value.

TitledBorder

public TitledBorder(Border border,
                    String title,
                    int titleJustification,
                    int titlePosition,
                    Font titleFont,
                    Color titleColor)
Constructs a TitledBorder given its border, title text, horizontal alignment, vertical position, font, and color.

Parameters:
border - the border underneath the title, or null to use a default from the current look and feel.
title - the title text, or null to use no title text.
titleJustification - the horizontal alignment of the title text in relation to the border. The value must be one of LEFT, CENTER, RIGHT, LEADING, TRAILING, or DEFAULT_JUSTIFICATION.
titlePosition - the vertical position of the title text in relation to the border. The value must be one of ABOVE_TOP, TOP, BELOW_TOP, ABOVE_BOTTOM, BOTTOM, BELOW_BOTTOM, or DEFAULT_POSITION.
titleFont - the font for the title text, or null to use a default from the current look and feel.
titleColor - the color for the title text, or null to use a default from the current look and feel.
Throws:
IllegalArgumentException - if titleJustification or titlePosition have an unsupported value.
Method Detail

paintBorder

public void paintBorder(Component c,
                        Graphics g,
                        int x,
                        int y,
                        int width,
                        int height)
Paints the border and the title text.

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)
Measures the width of this border.

Specified by:
getBorderInsets in interface Border
Overrides:
getBorderInsets in class AbstractBorder
Parameters:
c - the component whose border is to be measured.
Returns:
an Insets object whose left, right, top and bottom fields indicate the width of the border at the respective edge.
See Also:
getBorderInsets(java.awt.Component, java.awt.Insets)

getBorderInsets

public Insets getBorderInsets(Component c,
                              Insets insets)
Measures the width of this border, storing the results into a pre-existing Insets object.

Overrides:
getBorderInsets in class AbstractBorder
Parameters:
insets - an Insets object for holding the result values. After invoking this method, the left, right, top and bottom fields indicate the width of the border at the respective edge.
c - the component that the border applies to (ignored here, subclasses may use it).
Returns:
the same object that was passed for insets.
See Also:
getBorderInsets(Component)

isBorderOpaque

public boolean isBorderOpaque()
Returns false, indicating that there are pixels inside the area of this border where the background shines through.

Specified by:
isBorderOpaque in interface Border
Overrides:
isBorderOpaque in class AbstractBorder
Returns:
false.

getTitle

public String getTitle()
Returns the text of the title.

Returns:
the title text, or null if no title is displayed.

getBorder

public Border getBorder()
Retrieves the border underneath the title. If no border has been set, or if it has been set tonull, the current LookAndFeel will be asked for a border using the key TitledBorder.border.

Returns:
a border, or null if the current LookAndFeel does not provide a border for the key TitledBorder.border.
See Also:
UIManager.getBorder(Object)

getTitlePosition

public int getTitlePosition()
Returns the vertical position of the title text in relation to the border.

Returns:
one of the values ABOVE_TOP, TOP, BELOW_TOP, ABOVE_BOTTOM, BOTTOM, BELOW_BOTTOM, or DEFAULT_POSITION.

getTitleJustification

public int getTitleJustification()
Returns the horizontal alignment of the title text in relation to the border.

Returns:
one of the values LEFT, CENTER, RIGHT, LEADING, TRAILING, or DEFAULT_JUSTIFICATION.

getTitleFont

public Font getTitleFont()
Retrieves the font for displaying the title text. If no font has been set, or if it has been set tonull, the current LookAndFeel will be asked for a font using the key TitledBorder.font.

Returns:
a font, or null if the current LookAndFeel does not provide a font for the key TitledBorder.font.
See Also:
UIManager.getFont(Object)

getTitleColor

public Color getTitleColor()
Retrieves the color for displaying the title text. If no color has been set, or if it has been set tonull, the current LookAndFeel will be asked for a color using the key TitledBorder.titleColor.

Returns:
a color, or null if the current LookAndFeel does not provide a color for the key TitledBorder.titleColor.
See Also:
UIManager.getColor(Object)

setTitle

public void setTitle(String title)
Sets the text of the title.

Parameters:
title - the new title text, or null for displaying no text at all.

setBorder

public void setBorder(Border border)
Sets the border underneath the title.

Parameters:
border - a border, or null to use the border that is supplied by the current LookAndFeel.
See Also:
getBorder()

setTitlePosition

public void setTitlePosition(int titlePosition)
Sets the vertical position of the title text in relation to the border.

Parameters:
titlePosition - one of the values ABOVE_TOP, TOP, BELOW_TOP, ABOVE_BOTTOM, BOTTOM, BELOW_BOTTOM, or DEFAULT_POSITION.
Throws:
IllegalArgumentException - if an unsupported value is passed for titlePosition.

setTitleJustification

public void setTitleJustification(int titleJustification)
Sets the horizontal alignment of the title text in relation to the border.

Parameters:
titleJustification - the new alignment, which must be one of LEFT, CENTER, RIGHT, LEADING, TRAILING, or DEFAULT_JUSTIFICATION.
Throws:
IllegalArgumentException - if an unsupported value is passed for titleJustification.

setTitleFont

public void setTitleFont(Font titleFont)
Sets the font for displaying the title text.

Parameters:
titleFont - the font, or null to use the font provided by the current LookAndFeel.
See Also:
getTitleFont()

setTitleColor

public void setTitleColor(Color titleColor)
Sets the color for displaying the title text.

Parameters:
titleColor - the color, or null to use the color provided by the current LookAndFeel.
See Also:
getTitleColor()

getMinimumSize

public Dimension getMinimumSize(Component c)
Calculates the minimum size needed for displaying the border and its title.

Parameters:
c - the Component for which this TitledBorder constitutes a border.
Returns:
The minimum size.

getFont

protected Font getFont(Component c)
Returns the font that is used for displaying the title text for a given Component.

Parameters:
c - the Component for which this TitledBorder is the border.
Returns:
The font returned by getTitleFont(), or a fallback if getTitleFont() returned null.