Module java.desktop
Package java.awt.font

Class ShapeGraphicAttribute

java.lang.Object
java.awt.font.GraphicAttribute
java.awt.font.ShapeGraphicAttribute

public final class ShapeGraphicAttribute extends GraphicAttribute
The ShapeGraphicAttribute class is an implementation of GraphicAttribute that draws shapes in a TextLayout.
See Also:
GraphicAttribute
  • Field Details

    • STROKE

      public static final boolean STROKE
      A key indicating the shape should be stroked with a 1-pixel wide stroke.
      See Also:
      Constant Field Values
    • FILL

      public static final boolean FILL
      A key indicating the shape should be filled.
      See Also:
      Constant Field Values
  • Constructor Details

    • ShapeGraphicAttribute

      public ShapeGraphicAttribute(Shape shape, int alignment, boolean stroke)
      Constructs a ShapeGraphicAttribute for the specified Shape.
      Parameters:
      shape - the Shape to render. The Shape is rendered with its origin at the origin of this ShapeGraphicAttribute in the host TextLayout. This object maintains a reference to shape.
      alignment - one of the alignments from this ShapeGraphicAttribute.
      stroke - true if the Shape should be stroked; false if the Shape should be filled.
  • Method Details

    • getAscent

      public float getAscent()
      Returns the ascent of this ShapeGraphicAttribute. The ascent of a ShapeGraphicAttribute is the positive distance from the origin of its Shape to the top of bounds of its Shape.
      Specified by:
      getAscent in class GraphicAttribute
      Returns:
      the ascent of this ShapeGraphicAttribute.
      See Also:
      GraphicAttribute.getBounds()
    • getDescent

      public float getDescent()
      Returns the descent of this ShapeGraphicAttribute. The descent of a ShapeGraphicAttribute is the distance from the origin of its Shape to the bottom of the bounds of its Shape.
      Specified by:
      getDescent in class GraphicAttribute
      Returns:
      the descent of this ShapeGraphicAttribute.
      See Also:
      GraphicAttribute.getBounds()
    • getAdvance

      public float getAdvance()
      Returns the advance of this ShapeGraphicAttribute. The advance of a ShapeGraphicAttribute is the distance from the origin of its Shape to the right side of the bounds of its Shape.
      Specified by:
      getAdvance in class GraphicAttribute
      Returns:
      the advance of this ShapeGraphicAttribute.
      See Also:
      GraphicAttribute.getBounds()
    • draw

      public void draw(Graphics2D graphics, float x, float y)
      Renders this GraphicAttribute at the specified location.
      Specified by:
      draw in class GraphicAttribute
      Parameters:
      graphics - the Graphics2D into which to render the graphic
      x - the user-space X coordinate where the graphic is rendered
      y - the user-space Y coordinate where the graphic is rendered
    • getBounds

      public Rectangle2D getBounds()
      Returns a Rectangle2D that encloses all of the bits drawn by this ShapeGraphicAttribute relative to the rendering position. A graphic can be rendered beyond its origin, ascent, descent, or advance; but if it does, this method's implementation should indicate where the graphic is rendered.
      Overrides:
      getBounds in class GraphicAttribute
      Returns:
      a Rectangle2D that encloses all of the bits rendered by this ShapeGraphicAttribute.
    • getOutline

      public Shape getOutline(AffineTransform tx)
      Return a Shape that represents the region that this ShapeGraphicAttribute renders. This is used when a TextLayout is requested to return the outline of the text. The (untransformed) shape must not extend outside the rectangular bounds returned by getBounds.
      Overrides:
      getOutline in class GraphicAttribute
      Parameters:
      tx - an optional AffineTransform to apply to the this ShapeGraphicAttribute. This can be null.
      Returns:
      the Shape representing this graphic attribute, suitable for stroking or filling.
      Since:
      1.6
    • hashCode

      public int hashCode()
      Returns a hashcode for this ShapeGraphicAttribute.
      Overrides:
      hashCode in class Object
      Returns:
      a hash code value for this ShapeGraphicAttribute.
      See Also:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • equals

      public boolean equals(Object rhs)
      Compares this ShapeGraphicAttribute to the specified Object.
      Overrides:
      equals in class Object
      Parameters:
      rhs - the Object to compare for equality
      Returns:
      true if this ShapeGraphicAttribute equals rhs; false otherwise.
      See Also:
      Object.hashCode(), HashMap
    • equals

      public boolean equals(ShapeGraphicAttribute rhs)
      Compares this ShapeGraphicAttribute to the specified ShapeGraphicAttribute.
      Parameters:
      rhs - the ShapeGraphicAttribute to compare for equality
      Returns:
      true if this ShapeGraphicAttribute equals rhs; false otherwise.