javax.swing.border

Class CompoundBorder

Implemented Interfaces:
Border, Serializable
Known Direct 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

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

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 Details

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 Details

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 interface AbstractBorder
Parameters:
c - the component in the center of this 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 interface AbstractBorder
Parameters:
c - the component in the center of this border.
insets - an Insets object for holding the added insets.
Returns:
the insets object.

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).

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).

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 interface 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 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.

CompoundBorder.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.