javax.swing.border

Class BevelBorder

Implemented Interfaces:
Border, Serializable
Known Direct Subclasses:
BorderUIResource.BevelBorderUIResource, SoftBevelBorder

public class BevelBorder
extends AbstractBorder

A rectangular, two pixel thick border that causes the enclosed area to appear as if it was raising out of or lowered into the screen. Some LookAndFeels use this kind of border for rectangular buttons.

A BevelBorder has a highlight and a shadow color. In the raised variant, the highlight color is used for the top and left edges, and the shadow color is used for the bottom and right edge. For an image, see the documentation of the individual constructors.

See Also:
Serialized Form

Field Summary

static int
LOWERED
Indicates that the BevelBorder looks like if the enclosed area was pressed into the screen.
static int
RAISED
Indicates that the BevelBorder looks like if the enclosed area was raising out of the screen.
protected int
bevelType
The type of this BevelBorder, which is either RAISED or LOWERED.
protected Color
highlightInner
The inner highlight color, or null to indicate that the color shall be derived from the background of the component whose border is being painted.
protected Color
highlightOuter
The outer highlight color, or null to indicate that the color shall be derived from the background of the component whose border is being painted.
protected Color
shadowInner
The inner shadow color, or null to indicate that the color shall be derived from the background of the component whose border is being painted.
protected Color
shadowOuter
The outer shadow color, or null to indicate that the color shall be derived from the background of the component whose border is being painted.

Constructor Summary

BevelBorder(int bevelType)
Constructs a BevelBorder whose colors will be derived from the background of the enclosed component.
BevelBorder(int bevelType, Color highlight, Color shadow)
Constructs a BevelBorder given its appearance type and two colors for its highlight and shadow.
BevelBorder(int bevelType, Color highlightOuter, Color highlightInner, Color shadowOuter, Color shadowInner)
Constructs a BevelBorder given its appearance type and all colors.

Method Summary

int
getBevelType()
Returns the appearance of this border, which is either RAISED or LOWERED.
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.
Color
getHighlightInnerColor()
Returns the color that will be used for the inner side of highlighted edges when painting the border, or null if that color will be derived from the background of the enclosed Component.
Color
getHighlightInnerColor(Component c)
Determines the color that will be used for the inner side of highlighted edges when painting the border.
Color
getHighlightOuterColor()
Returns the color that will be used for the outer side of highlighted edges when painting the border, or null if that color will be derived from the background of the enclosed Component.
Color
getHighlightOuterColor(Component c)
Determines the color that will be used for the outer side of highlighted edges when painting the border.
Color
getShadowInnerColor()
Returns the color that will be used for the inner side of shadowed edges when painting the border, or null if that color will be derived from the background of the enclosed Component.
Color
getShadowInnerColor(Component c)
Determines the color that will be used for the inner side of shadowed edges when painting the border.
Color
getShadowOuterColor()
Returns the color that will be used for the outer side of shadowed edges when painting the border, or null if that color will be derived from the background of the enclosed Component.
Color
getShadowOuterColor(Component c)
Determines the color that will be used for the outer side of shadowed edges when painting the border.
boolean
isBorderOpaque()
Determines whether this border fills every pixel in its area when painting.
void
paintBorder(Component c, Graphics g, int x, int y, int width, int height)
Paints the border for a given component.
protected void
paintLoweredBevel(Component c, Graphics g, int x, int y, int width, int height)
Paints a lowered bevel border around a component.
protected void
paintRaisedBevel(Component c, Graphics g, int x, int y, int width, int height)
Paints a raised bevel border around a component.

Methods inherited from class javax.swing.border.AbstractBorder

getBorderInsets, getBorderInsets, getInteriorRectangle, getInteriorRectangle, isBorderOpaque, paintBorder

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

LOWERED

public static final int LOWERED
Indicates that the BevelBorder looks like if the enclosed area was pressed into the screen.
Field Value:
1

RAISED

public static final int RAISED
Indicates that the BevelBorder looks like if the enclosed area was raising out of the screen.
Field Value:
0

bevelType

protected int bevelType
The type of this BevelBorder, which is either RAISED or LOWERED.

highlightInner

protected Color highlightInner
The inner highlight color, or null to indicate that the color shall be derived from the background of the component whose border is being painted.

highlightOuter

protected Color highlightOuter
The outer highlight color, or null to indicate that the color shall be derived from the background of the component whose border is being painted.

shadowInner

protected Color shadowInner
The inner shadow color, or null to indicate that the color shall be derived from the background of the component whose border is being painted.

shadowOuter

protected Color shadowOuter
The outer shadow color, or null to indicate that the color shall be derived from the background of the component whose border is being painted.

Constructor Details

BevelBorder

public BevelBorder(int bevelType)
Constructs a BevelBorder whose colors will be derived from the background of the enclosed component. The background color is retrieved each time the border is painted, so a BevelBorder constructed by this method will automatically reflect a change to the component’s background color.

[An illustration showing raised and lowered BevelBorders]

Parameters:
bevelType - the desired appearance of the border. The value must be either RAISED or LOWERED.
Throws:
IllegalArgumentException - if bevelType has an unsupported value.

BevelBorder

public BevelBorder(int bevelType,
                   Color highlight,
                   Color shadow)
Constructs a BevelBorder given its appearance type and two colors for its highlight and shadow.

[An illustration showing BevelBorders that were constructed
 with this method]

Parameters:
bevelType - the desired appearance of the border. The value must be either RAISED or LOWERED.
highlight - the color that will be used for the inner side of the highlighted edges (top and left if if bevelType is RAISED; bottom and right otherwise). The color for the outer side is a brightened version of this color.
shadow - the color that will be used for the outer side of the shadowed edges (bottom and right if bevelType is RAISED; top and left otherwise). The color for the inner side is a brightened version of this color.
Throws:
IllegalArgumentException - if bevelType has an unsupported value.
NullPointerException - if highlight or shadow is null.

BevelBorder

public BevelBorder(int bevelType,
                   Color highlightOuter,
                   Color highlightInner,
                   Color shadowOuter,
                   Color shadowInner)
Constructs a BevelBorder given its appearance type and all colors.

[An illustration showing BevelBorders that were constructed
 with this method]

Parameters:
bevelType - the desired appearance of the border. The value must be either RAISED or LOWERED.
highlightOuter - the color that will be used for the outer side of the highlighted edges (top and left if bevelType is RAISED; bottom and right otherwise).
highlightInner - the color that will be used for the inner side of the highlighted edges.
shadowOuter - the color that will be used for the outer side of the shadowed edges (bottom and right if bevelType is RAISED; top and left otherwise).
shadowInner - the color that will be used for the inner side of the shadowed edges.
Throws:
IllegalArgumentException - if bevelType has an unsupported value.
NullPointerException - if one of the passed colors is null.

Method Details

getBevelType

public int getBevelType()
Returns the appearance of this border, which is either RAISED or LOWERED.
Returns:
The bevel type (RAISED or LOWERED).

getBorderInsets

public Insets getBorderInsets(Component c)
Measures the width of this border.
Specified by:
getBorderInsets in interface Border
Overrides:
getBorderInsets in interface 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.

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 interface 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.
Returns:
the same object that was passed for insets.

getHighlightInnerColor

public Color getHighlightInnerColor()
Returns the color that will be used for the inner side of highlighted edges when painting the border, or null if that color will be derived from the background of the enclosed Component.
Returns:
The color (possibly null).

getHighlightInnerColor

public Color getHighlightInnerColor(Component c)
Determines the color that will be used for the inner side of highlighted edges when painting the border. If a highlight color has been specified upon constructing the border, that color is returned. Otherwise, the background color of the enclosed component is brightened.
Parameters:
c - the component enclosed by this border.
Returns:
The color.

getHighlightOuterColor

public Color getHighlightOuterColor()
Returns the color that will be used for the outer side of highlighted edges when painting the border, or null if that color will be derived from the background of the enclosed Component.
Returns:
The color (possibly null).

getHighlightOuterColor

public Color getHighlightOuterColor(Component c)
Determines the color that will be used for the outer side of highlighted edges when painting the border. If a highlight color has been specified upon constructing the border, that color is returned. Otherwise, the inner highlight color is brightened.
Parameters:
c - the component enclosed by this border.
Returns:
The color.

getShadowInnerColor

public Color getShadowInnerColor()
Returns the color that will be used for the inner side of shadowed edges when painting the border, or null if that color will be derived from the background of the enclosed Component.
Returns:
The color (possibly null).

getShadowInnerColor

public Color getShadowInnerColor(Component c)
Determines the color that will be used for the inner side of shadowed edges when painting the border. If a shadow color has been specified upon constructing the border, that color is returned. Otherwise, the background color of the enclosed component is darkened.
Parameters:
c - the component enclosed by this border.
Returns:
The color.

getShadowOuterColor

public Color getShadowOuterColor()
Returns the color that will be used for the outer side of shadowed edges when painting the border, or null if that color will be derived from the background of the enclosed Component.
Returns:
The color (possibly null).

getShadowOuterColor

public Color getShadowOuterColor(Component c)
Determines the color that will be used for the outer side of shadowed edges when painting the border. If a shadow color has been specified upon constructing the border, that color is returned. Otherwise, the inner shadow color is darkened.
Parameters:
c - the component enclosed by this border.
Returns:
The color.

isBorderOpaque

public boolean isBorderOpaque()
Determines whether this border fills every pixel in its area when painting.

If the border colors are derived from the background color of the enclosed component, the result is true because the derivation method always returns opaque colors. Otherwise, the result depends on the opacity of the individual colors.

Specified by:
isBorderOpaque in interface Border
Overrides:
isBorderOpaque in interface AbstractBorder
Returns:
true if the border is fully opaque, or false if some pixels of the background can shine through the border.

paintBorder

public void paintBorder(Component c,
                        Graphics g,
                        int x,
                        int y,
                        int width,
                        int height)
Paints the border for a given component.
Specified by:
paintBorder in interface Border
Overrides:
paintBorder in interface 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.

paintLoweredBevel

protected void paintLoweredBevel(Component c,
                                 Graphics g,
                                 int x,
                                 int y,
                                 int width,
                                 int height)
Paints a lowered bevel border around a component.
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.

paintRaisedBevel

protected void paintRaisedBevel(Component c,
                                Graphics g,
                                int x,
                                int y,
                                int width,
                                int height)
Paints a raised bevel border around a component.
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.

BevelBorder.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.