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

# Class TextLayout.CaretPolicy

java.lang.Object
java.awt.font.TextLayout.CaretPolicy

Enclosing class:
  `TextLayout`

public static class TextLayout.CaretPolicy extends Object
Defines a policy for determining the strong caret location. This class contains one method, `getStrongCaret`, which is used to specify the policy that determines the strong caret in dual-caret text. The strong caret is used to move the caret to the left or right. Instances of this class can be passed to `getCaretShapes`, `getNextLeftHit` and `getNextRightHit` to customize strong caret selection.

To specify alternate caret policies, subclass `CaretPolicy` and override `getStrongCaret`. `getStrongCaret` should inspect the two `TextHitInfo` arguments and choose one of them as the strong caret.

Most clients do not need to use this class.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CaretPolicy()`
  Constructs a `CaretPolicy`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TextHitInfo`
  `getStrongCaret(TextHitInfo hit1, TextHitInfo hit2, TextLayout layout)`
  Chooses one of the specified `TextHitInfo` instances as a strong caret in the specified `TextLayout`.

  ### 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

  - ### CaretPolicy

    public CaretPolicy()
    Constructs a `CaretPolicy`.

- ## Method Details

  - ### getStrongCaret

    public TextHitInfo getStrongCaret(TextHitInfo hit1, TextHitInfo hit2, TextLayout layout)
    Chooses one of the specified `TextHitInfo` instances as a strong caret in the specified `TextLayout`.
    Parameters:
      `hit1` - a valid hit in `layout`
      `hit2` - a valid hit in `layout`
      `layout` - the `TextLayout` in which `hit1` and `hit2` are used
    Returns:
      `hit1` or `hit2` (or an equivalent `TextHitInfo`), indicating the strong caret.