Cursor (Java SE 25 & JDK 25)
Description: declaration: module: java.desktop, package: java.awt, class: Cursor
Keywords: java.awt.Cursor class

# Class Cursor

java.lang.Object
java.awt.Cursor

All Implemented Interfaces:
  `Serializable`

public class Cursor extends Object implements Serializable
A class to encapsulate the bitmap representation of the mouse cursor.

See Also:
  - `Component.setCursor(Cursor)`
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `CROSSHAIR_CURSOR`
  The crosshair cursor type.
  `static final int`
  `CUSTOM_CURSOR`
  The type associated with all custom cursors.
  `static final int`
  `DEFAULT_CURSOR`
  The default cursor type (gets set if no cursor is defined).
  `static final int`
  `E_RESIZE_CURSOR`
  The east-resize cursor type.
  `static final int`
  `HAND_CURSOR`
  The hand cursor type.
  `static final int`
  `MOVE_CURSOR`
  The move cursor type.
  `static final int`
  `N_RESIZE_CURSOR`
  The north-resize cursor type.
  `protected String`
  `name`
  The user-visible name of the cursor.
  `static final int`
  `NE_RESIZE_CURSOR`
  The north-east-resize cursor type.
  `static final int`
  `NW_RESIZE_CURSOR`
  The north-west-resize cursor type.
  `protected static Cursor[]`
  `predefined`
  Deprecated.
  As of JDK version 1.7, the `getPredefinedCursor(int)` method should be used instead.
  `static final int`
  `S_RESIZE_CURSOR`
  The south-resize cursor type.
  `static final int`
  `SE_RESIZE_CURSOR`
  The south-east-resize cursor type.
  `static final int`
  `SW_RESIZE_CURSOR`
  The south-west-resize cursor type.
  `static final int`
  `TEXT_CURSOR`
  The text cursor type.
  `static final int`
  `W_RESIZE_CURSOR`
  The west-resize cursor type.
  `static final int`
  `WAIT_CURSOR`
  The wait cursor type.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  ``
  `Cursor(int type)`
  Creates a new cursor object with the specified type.
  `protected`
  `Cursor(String name)`
  Creates a new custom cursor object with the specified name.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Cursor`
  `getDefaultCursor()`
  Return the system default cursor.
  `String`
  `getName()`
  Returns the name of this cursor.
  `static Cursor`
  `getPredefinedCursor(int type)`
  Returns a cursor object with the specified predefined type.
  `static Cursor`
  `getSystemCustomCursor(String name)`
  Returns a system-specific custom cursor object matching the specified name.
  `int`
  `getType()`
  Returns the type for this cursor.
  `String`
  `toString()`
  Returns a string representation of this cursor.

  ### Methods declared in class Object

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

- ## Field Details

  - ### DEFAULT_CURSOR

    public static final int DEFAULT_CURSOR
    The default cursor type (gets set if no cursor is defined).
    See Also:
      - Constant Field Values

  - ### CROSSHAIR_CURSOR

    public static final int CROSSHAIR_CURSOR
    The crosshair cursor type.
    See Also:
      - Constant Field Values

  - ### TEXT_CURSOR

    public static final int TEXT_CURSOR
    The text cursor type.
    See Also:
      - Constant Field Values

  - ### WAIT_CURSOR

    public static final int WAIT_CURSOR
    The wait cursor type.
    See Also:
      - Constant Field Values

  - ### SW_RESIZE_CURSOR

    public static final int SW_RESIZE_CURSOR
    The south-west-resize cursor type.
    See Also:
      - Constant Field Values

  - ### SE_RESIZE_CURSOR

    public static final int SE_RESIZE_CURSOR
    The south-east-resize cursor type.
    See Also:
      - Constant Field Values

  - ### NW_RESIZE_CURSOR

    public static final int NW_RESIZE_CURSOR
    The north-west-resize cursor type.
    See Also:
      - Constant Field Values

  - ### NE_RESIZE_CURSOR

    public static final int NE_RESIZE_CURSOR
    The north-east-resize cursor type.
    See Also:
      - Constant Field Values

  - ### N_RESIZE_CURSOR

    public static final int N_RESIZE_CURSOR
    The north-resize cursor type.
    See Also:
      - Constant Field Values

  - ### S_RESIZE_CURSOR

    public static final int S_RESIZE_CURSOR
    The south-resize cursor type.
    See Also:
      - Constant Field Values

  - ### W_RESIZE_CURSOR

    public static final int W_RESIZE_CURSOR
    The west-resize cursor type.
    See Also:
      - Constant Field Values

  - ### E_RESIZE_CURSOR

    public static final int E_RESIZE_CURSOR
    The east-resize cursor type.
    See Also:
      - Constant Field Values

  - ### HAND_CURSOR

    public static final int HAND_CURSOR
    The hand cursor type.
    See Also:
      - Constant Field Values

  - ### MOVE_CURSOR

    public static final int MOVE_CURSOR
    The move cursor type.
    See Also:
      - Constant Field Values

  - ### predefined

    @Deprecated protected static Cursor[] predefined
    Deprecated.
    As of JDK version 1.7, the `getPredefinedCursor(int)` method should be used instead.

  - ### CUSTOM_CURSOR

    public static final int CUSTOM_CURSOR
    The type associated with all custom cursors.
    See Also:
      - Constant Field Values

  - ### name

    protected String name
    The user-visible name of the cursor.
    See Also:
      - `getName()`

- ## Constructor Details

  - ### Cursor

    @ConstructorProperties("type") public Cursor(int type)
    Creates a new cursor object with the specified type.
    Parameters:
      `type` - the type of cursor
    Throws:
      `IllegalArgumentException` - if the specified cursor type is invalid

  - ### Cursor

    protected Cursor(String name)
    Creates a new custom cursor object with the specified name.

    Note: this constructor should only be used by AWT implementations as part of their support for custom cursors. Applications should use Toolkit.createCustomCursor().

    Parameters:
      `name` - the user-visible name of the cursor.
    See Also:
      - `Toolkit.createCustomCursor(Image, Point, String)`

- ## Method Details

  - ### getPredefinedCursor

    public static Cursor getPredefinedCursor(int type)
    Returns a cursor object with the specified predefined type.
    Parameters:
      `type` - the type of predefined cursor
    Returns:
      the specified predefined cursor
    Throws:
      `IllegalArgumentException` - if the specified cursor type is invalid

  - ### getSystemCustomCursor

    public static Cursor getSystemCustomCursor(String name) throws AWTException, HeadlessException
    Returns a system-specific custom cursor object matching the specified name. Cursor names are, for example: "Invalid.16x16"
    Parameters:
      `name` - a string describing the desired system-specific custom cursor
    Returns:
      the system specific custom cursor named
    Throws:
      `HeadlessException` - if `GraphicsEnvironment.isHeadless` returns true
      `AWTException` - in case of erroneous retrieving of the cursor

  - ### getDefaultCursor

    public static Cursor getDefaultCursor()
    Return the system default cursor.
    Returns:
      the default cursor

  - ### getType

    public int getType()
    Returns the type for this cursor.
    Returns:
      the cursor type

  - ### getName

    public String getName()
    Returns the name of this cursor.
    Returns:
      a localized description of this cursor.
    Since:
      1.2

  - ### toString

    public String toString()
    Returns a string representation of this cursor.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of this cursor.
    Since:
      1.2