CompoundBorderpublic class CompoundBorder extends AbstractBorder A composite Border class used to compose two Border objects
into a single border by nesting an inside Border object within
the insets of an outside Border object.
For example, this class may be used to add blank margin space
to a component with an existing decorative border:
Border border = comp.getBorder();
Border margin = new EmptyBorder(10,10,10,10);
comp.setBorder(new CompoundBorder(border, margin));
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}. |
Fields Summary |
---|
protected Border | outsideBorder | protected Border | insideBorder |
Constructors Summary |
---|
public CompoundBorder()Creates a compound border with null outside and inside borders.
this.outsideBorder = null;
this.insideBorder = null;
| public CompoundBorder(Border outsideBorder, Border insideBorder)Creates a compound border with the specified outside and
inside borders. Either border may be null.
this.outsideBorder = outsideBorder;
this.insideBorder = insideBorder;
|
Methods Summary |
---|
public java.awt.Insets | getBorderInsets(java.awt.Component c, java.awt.Insets insets)Reinitialize the insets parameter with this Border's current Insets.
Insets nextInsets;
insets.top = insets.left = insets.right = insets.bottom = 0;
if(outsideBorder != null) {
nextInsets = outsideBorder.getBorderInsets(c);
insets.top += nextInsets.top;
insets.left += nextInsets.left;
insets.right += nextInsets.right;
insets.bottom += nextInsets.bottom;
}
if(insideBorder != null) {
nextInsets = insideBorder.getBorderInsets(c);
insets.top += nextInsets.top;
insets.left += nextInsets.left;
insets.right += nextInsets.right;
insets.bottom += nextInsets.bottom;
}
return insets;
| public java.awt.Insets | getBorderInsets(java.awt.Component c)Returns the insets of the composite border by adding
the insets of the outside border to the insets of the
inside border.
return getBorderInsets(c, new Insets(0,0,0,0));
| public javax.swing.border.Border | getInsideBorder()Returns the inside border object.
return insideBorder;
| public javax.swing.border.Border | getOutsideBorder()Returns the outside border object.
return outsideBorder;
| public boolean | isBorderOpaque()Returns whether or not this compound border is opaque.
Returns true if both the inside and outside borders are
non-null and opaque; returns false otherwise.
return (outsideBorder == null || outsideBorder.isBorderOpaque()) &&
(insideBorder == null || insideBorder.isBorderOpaque());
| public void | paintBorder(java.awt.Component c, java.awt.Graphics g, int x, int y, int width, int height)Paints the compound border by painting the outside border
with the specified position and size and then painting the
inside border at the specified position and size offset by
the insets of the outside border.
Insets nextInsets;
int px, py, pw, ph;
px = x;
py = y;
pw = width;
ph = height;
if(outsideBorder != null) {
outsideBorder.paintBorder(c, g, px, py, pw, ph);
nextInsets = outsideBorder.getBorderInsets(c);
px += nextInsets.left;
py += nextInsets.top;
pw = pw - nextInsets.right - nextInsets.left;
ph = ph - nextInsets.bottom - nextInsets.top;
}
if(insideBorder != null)
insideBorder.paintBorder(c, g, px, py, pw, ph);
|
|