LineMetrics (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: java.awt.font, class: LineMetrics
Keywords: java.awt.font.LineMetrics class

# Class LineMetrics

java.lang.Object
java.awt.font.LineMetrics

public abstract class LineMetrics extends Object
The `LineMetrics` class allows access to the metrics needed to layout characters along a line and to layout of a set of lines. A `LineMetrics` object encapsulates the measurement information associated with a run of text.

Fonts can have different metrics for different ranges of characters. The `getLineMetrics` methods of `Font` take some text as an argument and return a `LineMetrics` object describing the metrics of the initial number of characters in that text, as returned by `getNumChars()`.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `LineMetrics()`
  Constructor for subclasses to call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract float`
  `getAscent()`
  Returns the ascent of the text.
  `abstract int`
  `getBaselineIndex()`
  Returns the baseline index of the text.
  `abstract float[]`
  `getBaselineOffsets()`
  Returns the baseline offsets of the text, relative to the baseline of the text.
  `abstract float`
  `getDescent()`
  Returns the descent of the text.
  `abstract float`
  `getHeight()`
  Returns the height of the text.
  `abstract float`
  `getLeading()`
  Returns the leading of the text.
  `abstract int`
  `getNumChars()`
  Returns the number of characters (`char` values) in the text whose metrics are encapsulated by this `LineMetrics` object.
  `abstract float`
  `getStrikethroughOffset()`
  Returns the position of the strike-through line relative to the baseline.
  `abstract float`
  `getStrikethroughThickness()`
  Returns the thickness of the strike-through line.
  `abstract float`
  `getUnderlineOffset()`
  Returns the position of the underline relative to the baseline.
  `abstract float`
  `getUnderlineThickness()`
  Returns the thickness of the underline.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### LineMetrics

    protected LineMetrics()
    Constructor for subclasses to call.

- ## Method Details

  - ### getNumChars

    public abstract int getNumChars()
    Returns the number of characters (`char` values) in the text whose metrics are encapsulated by this `LineMetrics` object.
    Returns:
      the number of characters (`char` values) in the text with which this `LineMetrics` was created.

  - ### getAscent

    public abstract float getAscent()
    Returns the ascent of the text. The ascent is the distance from the baseline to the ascender line. The ascent usually represents the the height of the capital letters of the text. Some characters can extend above the ascender line.
    Returns:
      the ascent of the text.

  - ### getDescent

    public abstract float getDescent()
    Returns the descent of the text. The descent is the distance from the baseline to the descender line. The descent usually represents the distance to the bottom of lower case letters like 'p'. Some characters can extend below the descender line.
    Returns:
      the descent of the text.

  - ### getLeading

    public abstract float getLeading()
    Returns the leading of the text. The leading is the recommended distance from the bottom of the descender line to the top of the next line.
    Returns:
      the leading of the text.

  - ### getHeight

    public abstract float getHeight()
    Returns the height of the text. The height is equal to the sum of the ascent, the descent and the leading.
    Returns:
      the height of the text.

  - ### getBaselineIndex

    public abstract int getBaselineIndex()
    Returns the baseline index of the text. The index is one of `ROMAN_BASELINE`, `CENTER_BASELINE`, `HANGING_BASELINE`.
    Returns:
      the baseline of the text.

  - ### getBaselineOffsets

    public abstract float[] getBaselineOffsets()
    Returns the baseline offsets of the text, relative to the baseline of the text. The offsets are indexed by baseline index. For example, if the baseline index is `CENTER_BASELINE` then `offsets[HANGING_BASELINE]` is usually negative, `offsets[CENTER_BASELINE]` is zero, and `offsets[ROMAN_BASELINE]` is usually positive.
    Returns:
      the baseline offsets of the text.

  - ### getStrikethroughOffset

    public abstract float getStrikethroughOffset()
    Returns the position of the strike-through line relative to the baseline.
    Returns:
      the position of the strike-through line.

  - ### getStrikethroughThickness

    public abstract float getStrikethroughThickness()
    Returns the thickness of the strike-through line.
    Returns:
      the thickness of the strike-through line.

  - ### getUnderlineOffset

    public abstract float getUnderlineOffset()
    Returns the position of the underline relative to the baseline.
    Returns:
      the position of the underline.

  - ### getUnderlineThickness

    public abstract float getUnderlineThickness()
    Returns the thickness of the underline.
    Returns:
      the thickness of the underline.