Class GraphicAttribute

java.lang.Object
java.awt.font.GraphicAttribute
Direct Known Subclasses:
ImageGraphicAttribute, ShapeGraphicAttribute

public abstract class GraphicAttribute extends Object
This class is used with the CHAR_REPLACEMENT attribute.

The GraphicAttribute class represents a graphic embedded in text. Clients subclass this class to implement their own char replacement graphics. Clients wishing to embed shapes and images in text need not subclass this class. Instead, clients can use the ShapeGraphicAttribute and ImageGraphicAttribute classes.

Subclasses must ensure that their objects are immutable once they are constructed. Mutating a GraphicAttribute that is used in a TextLayout results in undefined behavior from the TextLayout.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Aligns bottom of graphic to bottom of line.
    static final int
    Aligns origin of graphic to center baseline of line.
    static final int
    Aligns origin of graphic to hanging baseline of line.
    static final int
    Aligns origin of graphic to roman baseline of line.
    static final int
    Aligns top of graphic to top of line.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    GraphicAttribute(int alignment)
    Constructs a GraphicAttribute.
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract void
    draw(Graphics2D graphics, float x, float y)
    Renders this GraphicAttribute at the specified location.
    abstract float
    Returns the advance of this GraphicAttribute.
    final int
    Returns the alignment of this GraphicAttribute.
    abstract float
    Returns the ascent of this GraphicAttribute.
    Returns a Rectangle2D that encloses all of the bits drawn by this GraphicAttribute relative to the rendering position.
    abstract float
    Returns the descent of this GraphicAttribute.
    Returns the justification information for this GraphicAttribute.
    Return a Shape that represents the region that this GraphicAttribute renders.

    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

    • TOP_ALIGNMENT

      public static final int TOP_ALIGNMENT
      Aligns top of graphic to top of line.
      See Also:
    • BOTTOM_ALIGNMENT

      public static final int BOTTOM_ALIGNMENT
      Aligns bottom of graphic to bottom of line.
      See Also:
    • ROMAN_BASELINE

      public static final int ROMAN_BASELINE
      Aligns origin of graphic to roman baseline of line.
      See Also:
    • CENTER_BASELINE

      public static final int CENTER_BASELINE
      Aligns origin of graphic to center baseline of line.
      See Also:
    • HANGING_BASELINE

      public static final int HANGING_BASELINE
      Aligns origin of graphic to hanging baseline of line.
      See Also:
  • Constructor Details

    • GraphicAttribute

      protected GraphicAttribute(int alignment)
      Constructs a GraphicAttribute. Subclasses use this to define the alignment of the graphic.
      Parameters:
      alignment - an int representing one of the GraphicAttribute alignment fields
      Throws:
      IllegalArgumentException - if alignment is not one of the five defined values.
  • Method Details

    • getAscent

      public abstract float getAscent()
      Returns the ascent of this GraphicAttribute. A graphic can be rendered above its ascent.
      Returns:
      the ascent of this GraphicAttribute.
      See Also:
    • getDescent

      public abstract float getDescent()
      Returns the descent of this GraphicAttribute. A graphic can be rendered below its descent.
      Returns:
      the descent of this GraphicAttribute.
      See Also:
    • getAdvance

      public abstract float getAdvance()
      Returns the advance of this GraphicAttribute. The GraphicAttribute object's advance is the distance from the point at which the graphic is rendered and the point where the next character or graphic is rendered. A graphic can be rendered beyond its advance
      Returns:
      the advance of this GraphicAttribute.
      See Also:
    • getBounds

      public Rectangle2D getBounds()
      Returns a Rectangle2D that encloses all of the bits drawn by this GraphicAttribute relative to the rendering position. A graphic may be rendered beyond its origin, ascent, descent, or advance; but if it is, this method's implementation must indicate where the graphic is rendered. Default bounds is the rectangle (0, -ascent, advance, ascent+descent).
      Returns:
      a Rectangle2D that encloses all of the bits rendered by this GraphicAttribute.
    • getOutline

      public Shape getOutline(AffineTransform tx)
      Return a Shape that represents the region that this GraphicAttribute 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. The default implementation returns the rectangle returned by getBounds(), transformed by the provided AffineTransform if present.
      Parameters:
      tx - an optional AffineTransform to apply to the outline of this GraphicAttribute. This can be null.
      Returns:
      a Shape representing this graphic attribute, suitable for stroking or filling.
      Since:
      1.6
    • draw

      public abstract void draw(Graphics2D graphics, float x, float y)
      Renders this GraphicAttribute at the specified location.
      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
    • getAlignment

      public final int getAlignment()
      Returns the alignment of this GraphicAttribute. Alignment can be to a particular baseline, or to the absolute top or bottom of a line.
      Returns:
      the alignment of this GraphicAttribute.
    • getJustificationInfo

      public GlyphJustificationInfo getJustificationInfo()
      Returns the justification information for this GraphicAttribute. Subclasses can override this method to provide different justification information.
      Returns:
      a GlyphJustificationInfo object that contains the justification information for this GraphicAttribute.