com.lowagie.text

## Class RectangleReadOnly

- java.lang.Object
- - com.lowagie.text.Rectangle
  - - com.lowagie.text.RectangleReadOnly

- All Implemented Interfaces:
    Element

      public class RectangleReadOnly
      extends Rectangle

  A `RectangleReadOnly` is the representation of a geometric figure. It's the same as a `Rectangle` but immutable. Rectangles support constant width borders using `setBorderWidth(float)`and `setBorder(int)`. They also support borders that vary in width/color on each side using methods like `setBorderWidthLeft(float)`or `setBorderColorLeft(java.awt.Color)`.
  Since:
    2.1.2
  See Also:
    `Element`, `Table`, `Cell`, `HeaderFooter`

- - ### Field Summary

    - ### Fields inherited from class com.lowagie.text.Rectangle

      `backgroundColor, border, borderColor, borderColorBottom, borderColorLeft, borderColorRight, borderColorTop, borderWidth, borderWidthBottom, borderWidthLeft, borderWidthRight, borderWidthTop, BOTTOM, BOX, LEFT, llx, lly, NO_BORDER, RIGHT, rotation, TOP, UNDEFINED, urx, ury, useVariableBorders`

    - ### Fields inherited from interface com.lowagie.text.Element

      `ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_JUSTIFIED, ALIGN_JUSTIFIED_ALL, ALIGN_LEFT, ALIGN_MIDDLE, ALIGN_RIGHT, ALIGN_TOP, ALIGN_UNDEFINED, ANCHOR, ANNOTATION, AUTHOR, CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFBLOCK, CCITT_ENDOFLINE, CCITTG3_1D, CCITTG3_2D, CCITTG4, CELL, CHAPTER, CHUNK, CREATIONDATE, CREATOR, HEADER, IMGRAW, IMGTEMPLATE, JBIG2, JPEG, JPEG2000, KEYWORDS, LIST, LISTITEM, MARKED, MULTI_COLUMN_TEXT, PARAGRAPH, PHRASE, PRODUCER, PTABLE, RECTANGLE, ROW, SECTION, SUBJECT, TABLE, TITLE, YMARK`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RectangleReadOnly(float urx, float ury)` Constructs a `RectangleReadOnly` -object starting from the origin (0, 0).
    `RectangleReadOnly(float llx, float lly, float urx, float ury)` Constructs a `RectangleReadOnly` -object.
    `RectangleReadOnly(Rectangle rect)` Constructs a `RectangleReadOnly` -object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `cloneNonPositionParameters(Rectangle rect)` Copies each of the parameters, except the position, from a `Rectangle` object
    `void` | `disableBorderSide(int side)` Disables the border on the specified side.
    `void` | `enableBorderSide(int side)` Enables the border on the specified side.
    `void` | `normalize()` Normalizes the rectangle.
    `void` | `setBackgroundColor(java.awt.Color value)` Sets the backgroundcolor of the rectangle.
    `void` | `setBorder(int border)` Enables/Disables the border on the specified sides.
    `void` | `setBorderColor(java.awt.Color borderColor)` Sets the color of the border.
    `void` | `setBorderColorBottom(java.awt.Color borderColorBottom)` Sets the color of the bottom border.
    `void` | `setBorderColorLeft(java.awt.Color borderColorLeft)` Sets the color of the left border.
    `void` | `setBorderColorRight(java.awt.Color borderColorRight)` Sets the color of the right border
    `void` | `setBorderColorTop(java.awt.Color borderColorTop)` Sets the color of the top border.
    `void` | `setBorderWidth(float borderWidth)` Sets the borderwidth of the table.
    `void` | `setBorderWidthBottom(float borderWidthBottom)` Sets the width of the bottom border
    `void` | `setBorderWidthLeft(float borderWidthLeft)` Sets the width of the left border
    `void` | `setBorderWidthRight(float borderWidthRight)` Sets the width of the right border
    `void` | `setBorderWidthTop(float borderWidthTop)` Sets the width of the top border
    `void` | `setBottom(float lly)` Sets the lower left y-coordinate.
    `void` | `setGrayFill(float value)` Sets the grayscale of the rectangle.
    `void` | `setLeft(float llx)` Sets the lower left x-coordinate.
    `void` | `setRight(float urx)` Sets the upper right x-coordinate.
    `void` | `setTop(float ury)` Sets the upper right y-coordinate.
    `void` | `setUseVariableBorders(boolean useVariableBorders)` Sets a parameter indicating if the rectangle has variable borders
    `void` | `softCloneNonPositionParameters(Rectangle rect)` Copies each of the parameters, except the position, from a `Rectangle` object if the value is set there.
    `private void` | `throwReadOnlyError()` Throws an error because of the read only nature of this object.
    `java.lang.String` | `toString()` Gets the content of the text element.

    - ### Methods inherited from class com.lowagie.text.Rectangle

      `getBackgroundColor, getBorder, getBorderColor, getBorderColorBottom, getBorderColorLeft, getBorderColorRight, getBorderColorTop, getBorderWidth, getBorderWidthBottom, getBorderWidthLeft, getBorderWidthRight, getBorderWidthTop, getBottom, getBottom, getChunks, getGrayFill, getHeight, getLeft, getLeft, getRight, getRight, getRotation, getTop, getTop, getWidth, hasBorder, hasBorders, isContent, isNestable, isUseVariableBorders, process, rectangle, rotate, type`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### RectangleReadOnly

          public RectangleReadOnly(float llx,
                           float lly,
                           float urx,
                           float ury)

      Constructs a `RectangleReadOnly` -object.
      Parameters:
        `llx` - lower left x
        `lly` - lower left y
        `urx` - upper right x
        `ury` - upper right y

    - #### RectangleReadOnly

          public RectangleReadOnly(float urx,
                           float ury)

      Constructs a `RectangleReadOnly` -object starting from the origin (0, 0).
      Parameters:
        `urx` - upper right x
        `ury` - upper right y

    - #### RectangleReadOnly

          public RectangleReadOnly(Rectangle rect)

      Constructs a `RectangleReadOnly` -object.
      Parameters:
        `rect` - another `Rectangle`

  - ### Method Detail

    - #### throwReadOnlyError

          private void throwReadOnlyError()

      Throws an error because of the read only nature of this object.

    - #### setLeft

          public void setLeft(float llx)

      Sets the lower left x-coordinate.
      Overrides:
        `setLeft` in class `Rectangle`
      Parameters:
        `llx` - the new value

    - #### setRight

          public void setRight(float urx)

      Sets the upper right x-coordinate.
      Overrides:
        `setRight` in class `Rectangle`
      Parameters:
        `urx` - the new value

    - #### setTop

          public void setTop(float ury)

      Sets the upper right y-coordinate.
      Overrides:
        `setTop` in class `Rectangle`
      Parameters:
        `ury` - the new value

    - #### setBottom

          public void setBottom(float lly)

      Sets the lower left y-coordinate.
      Overrides:
        `setBottom` in class `Rectangle`
      Parameters:
        `lly` - the new value

    - #### normalize

          public void normalize()

      Normalizes the rectangle. Switches lower left with upper right if necessary.
      Overrides:
        `normalize` in class `Rectangle`

    - #### setBackgroundColor

          public void setBackgroundColor(java.awt.Color value)

      Sets the backgroundcolor of the rectangle.
      Overrides:
        `setBackgroundColor` in class `Rectangle`
      Parameters:
        `value` - the new value

    - #### setGrayFill

          public void setGrayFill(float value)

      Sets the grayscale of the rectangle.
      Overrides:
        `setGrayFill` in class `Rectangle`
      Parameters:
        `value` - the new value

    - #### setBorder

          public void setBorder(int border)

      Enables/Disables the border on the specified sides. The border is specified as an integer bitwise combination of the constants: `LEFT, RIGHT, TOP, BOTTOM`.
      Overrides:
        `setBorder` in class `Rectangle`
      Parameters:
        `border` - the new value
      See Also:
        `enableBorderSide(int)`, `disableBorderSide(int)`

    - #### setUseVariableBorders

          public void setUseVariableBorders(boolean useVariableBorders)

      Sets a parameter indicating if the rectangle has variable borders
      Overrides:
        `setUseVariableBorders` in class `Rectangle`
      Parameters:
        `useVariableBorders` - indication if the rectangle has variable borders

    - #### enableBorderSide

          public void enableBorderSide(int side)

      Enables the border on the specified side.
      Overrides:
        `enableBorderSide` in class `Rectangle`
      Parameters:
        `side` - the side to enable. One of `LEFT, RIGHT, TOP, BOTTOM`

    - #### disableBorderSide

          public void disableBorderSide(int side)

      Disables the border on the specified side.
      Overrides:
        `disableBorderSide` in class `Rectangle`
      Parameters:
        `side` - the side to disable. One of `LEFT, RIGHT, TOP, BOTTOM`

    - #### setBorderWidth

          public void setBorderWidth(float borderWidth)

      Sets the borderwidth of the table.
      Overrides:
        `setBorderWidth` in class `Rectangle`
      Parameters:
        `borderWidth` - the new value

    - #### setBorderWidthLeft

          public void setBorderWidthLeft(float borderWidthLeft)

      Sets the width of the left border
      Overrides:
        `setBorderWidthLeft` in class `Rectangle`
      Parameters:
        `borderWidthLeft` - a width

    - #### setBorderWidthRight

          public void setBorderWidthRight(float borderWidthRight)

      Sets the width of the right border
      Overrides:
        `setBorderWidthRight` in class `Rectangle`
      Parameters:
        `borderWidthRight` - a width

    - #### setBorderWidthTop

          public void setBorderWidthTop(float borderWidthTop)

      Sets the width of the top border
      Overrides:
        `setBorderWidthTop` in class `Rectangle`
      Parameters:
        `borderWidthTop` - a width

    - #### setBorderWidthBottom

          public void setBorderWidthBottom(float borderWidthBottom)

      Sets the width of the bottom border
      Overrides:
        `setBorderWidthBottom` in class `Rectangle`
      Parameters:
        `borderWidthBottom` - a width

    - #### setBorderColor

          public void setBorderColor(java.awt.Color borderColor)

      Sets the color of the border.
      Overrides:
        `setBorderColor` in class `Rectangle`
      Parameters:
        `borderColor` - a `Color`

    - #### setBorderColorLeft

          public void setBorderColorLeft(java.awt.Color borderColorLeft)

      Sets the color of the left border.
      Overrides:
        `setBorderColorLeft` in class `Rectangle`
      Parameters:
        `borderColorLeft` - a `Color`

    - #### setBorderColorRight

          public void setBorderColorRight(java.awt.Color borderColorRight)

      Sets the color of the right border
      Overrides:
        `setBorderColorRight` in class `Rectangle`
      Parameters:
        `borderColorRight` - a `Color`

    - #### setBorderColorTop

          public void setBorderColorTop(java.awt.Color borderColorTop)

      Sets the color of the top border.
      Overrides:
        `setBorderColorTop` in class `Rectangle`
      Parameters:
        `borderColorTop` - a `Color`

    - #### setBorderColorBottom

          public void setBorderColorBottom(java.awt.Color borderColorBottom)

      Sets the color of the bottom border.
      Overrides:
        `setBorderColorBottom` in class `Rectangle`
      Parameters:
        `borderColorBottom` - a `Color`

    - #### cloneNonPositionParameters

          public void cloneNonPositionParameters(Rectangle rect)

      Copies each of the parameters, except the position, from a `Rectangle` object
      Overrides:
        `cloneNonPositionParameters` in class `Rectangle`
      Parameters:
        `rect` - `Rectangle` to copy from

    - #### softCloneNonPositionParameters

          public void softCloneNonPositionParameters(Rectangle rect)

      Copies each of the parameters, except the position, from a `Rectangle` object if the value is set there.
      Overrides:
        `softCloneNonPositionParameters` in class `Rectangle`
      Parameters:
        `rect` - `Rectangle` to copy from

    - #### toString

          public java.lang.String toString()

      Description copied from interface: `Element`
      Gets the content of the text element.
      Specified by:
        `toString` in interface `Element`
      Overrides:
        `toString` in class `Rectangle`
      Returns:
        String version of the most important rectangle properties
      See Also:
        `Object.toString()`