Class CompoundBorder

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

public 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 JavaBeans has been added to the java.beans package. Please see XMLEncoder.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Border
    The inside border.
    protected Border
    The outside border.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a compound border with null outside and inside borders.
    CompoundBorder(Border outsideBorder, Border insideBorder)
    Creates a compound border with the specified outside and inside borders.
  • Method Summary

    Modifier and Type
    Method
    Description
    Reinitialize the insets parameter with this Border's current Insets.
    Returns the inside border object.
    Returns the outside border object.
    boolean
    Returns whether or not the compound border is opaque.
    void
    paintBorder(Component c, 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.

    Methods declared in class AbstractBorder

    getBaseline, getBaselineResizeBehavior, getBorderInsets, getInteriorRectangle, getInteriorRectangle
    Modifier and Type
    Method
    Description
    int
    getBaseline(Component c, int width, int height)
    Returns the baseline.
    Returns an enum indicating how the baseline of a component changes as the size changes.
    This default implementation returns a new Insets object that is initialized by the AbstractBorder.getBorderInsets(Component,Insets) method.
    getInteriorRectangle(Component c, int x, int y, int width, int height)
    This convenience method calls the static method.
    static Rectangle
    getInteriorRectangle(Component c, Border b, int x, int y, int width, int height)
    Returns a rectangle using the arguments minus the insets of the border.

    Methods declared in class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    Modifier and Type
    Method
    Description
    protected Object
    Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.
    boolean
    Compares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    May cause performance issues, deadlocks and hangs.
    final Class<? extends Object>
    Answers the unique instance of java.lang.Class which represents the class of the receiver.
    int
    Answers an integer hash code for the receiver.
    final void
    Causes one thread which is waiting on the receiver to be made ready to run.
    final void
    Causes all threads which are waiting on the receiver to be made ready to run.
    Answers a string containing a concise, human-readable description of the receiver.
    final void
    Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated by notify or notifyAll).
    final void
    wait(long time)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
    final void
    wait(long time, int frac)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
  • Field Details

    • outsideBorder

      protected Border outsideBorder
      The outside border.
    • insideBorder

      protected Border insideBorder
      The inside border.
  • Constructor Details

    • CompoundBorder

      public CompoundBorder()
      Creates a compound border with null outside and inside borders.
    • CompoundBorder

      @ConstructorProperties({"outsideBorder","insideBorder"}) public CompoundBorder(Border outsideBorder, Border insideBorder)
      Creates a compound border with the specified outside and inside borders. Either border may be null.
      Parameters:
      outsideBorder - the outside border
      insideBorder - the inside border to be nested
  • Method Details

    • isBorderOpaque

      public boolean isBorderOpaque()
      Returns whether or not the compound border is opaque.
      Specified by:
      isBorderOpaque in interface Border
      Overrides:
      isBorderOpaque in class AbstractBorder
      Returns:
      true if the inside and outside borders are each either null or 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 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.
      Specified by:
      paintBorder in interface Border
      Overrides:
      paintBorder in class AbstractBorder
      Parameters:
      c - the component for which this border is being painted
      g - the paint graphics
      x - the x position of the painted border
      y - the y position of the painted border
      width - the width of the painted border
      height - the height of the painted border
    • getBorderInsets

      public Insets getBorderInsets(Component c, Insets insets)
      Reinitialize the insets parameter with this Border's current Insets.
      Overrides:
      getBorderInsets in class AbstractBorder
      Parameters:
      c - the component for which this border insets value applies
      insets - the object to be reinitialized
      Returns:
      the insets object
      Throws:
      NullPointerException - if the specified insets is null
    • getOutsideBorder

      public Border getOutsideBorder()
      Returns the outside border object.
      Returns:
      the outside Border object
    • getInsideBorder

      public Border getInsideBorder()
      Returns the inside border object.
      Returns:
      the inside Border object