Module java.desktop
Package java.awt.font

## 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 java.lang.Object

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

- - ### Constructor Detail

    - #### CaretPolicy

          public CaretPolicy()

      Constructs a `CaretPolicy`.

  - ### Method Detail

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