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

Module java.desktop
Package java.awt

# Class MenuShortcut

java.lang.Object
java.awt.MenuShortcut

All Implemented Interfaces:
  `Serializable`

    public class MenuShortcut
    extends Object
    implements Serializable

The `MenuShortcut` class represents a keyboard accelerator for a MenuItem.

Menu shortcuts are created using virtual keycodes, not characters. For example, a menu shortcut for Ctrl-a (assuming that Control is the accelerator key) would be created with code like the following:

`MenuShortcut ms = new MenuShortcut(KeyEvent.VK_A, false);`

or alternatively

`MenuShortcut ms = new MenuShortcut(KeyEvent.getExtendedKeyCodeForChar('A'), false);`

Menu shortcuts may also be constructed for a wider set of keycodes using the `java.awt.event.KeyEvent.getExtendedKeyCodeForChar` call. For example, a menu shortcut for "Ctrl+cyrillic ef" is created by

`MenuShortcut ms = new MenuShortcut(KeyEvent.getExtendedKeyCodeForChar('ф'), false);`

Note that shortcuts created with a keycode or an extended keycode defined as a constant in `KeyEvent` work regardless of the current keyboard layout. However, a shortcut made of an extended keycode not listed in `KeyEvent` only work if the current keyboard layout produces a corresponding letter.

The accelerator key is platform-dependent and may be obtained via `Toolkit.getMenuShortcutKeyMaskEx()`.

Since:
  1.1
See Also:
  Serialized Form

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `MenuShortcut​(int key)` | Constructs a new MenuShortcut for the specified virtual keycode.
  `MenuShortcut​(int key, boolean useShiftModifier)` | Constructs a new MenuShortcut for the specified virtual keycode.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `boolean` | `equals​(MenuShortcut s)` | Returns whether this MenuShortcut is the same as another: equality is defined to mean that both MenuShortcuts use the same key and both either use or don't use the SHIFT key.
  `boolean` | `equals​(Object obj)` | Returns whether this MenuShortcut is the same as another: equality is defined to mean that both MenuShortcuts use the same key and both either use or don't use the SHIFT key.
  `int` | `getKey()` | Returns the raw keycode of this MenuShortcut.
  `int` | `hashCode()` | Returns the hashcode for this MenuShortcut.
  `protected String` | `paramString()` | Returns the parameter string representing the state of this MenuShortcut.
  `String` | `toString()` | Returns an internationalized description of the MenuShortcut.
  `boolean` | `usesShiftModifier()` | Returns whether this MenuShortcut must be invoked using the SHIFT key.

  ### Methods declared in class java.lang.Object

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

- ## Constructor Details

  - ### MenuShortcut

    public MenuShortcut​(int key)
    Constructs a new MenuShortcut for the specified virtual keycode.
    Parameters:
      `key` - the raw keycode for this MenuShortcut, as would be returned in the keyCode field of a `KeyEvent` if this key were pressed.
    See Also:
      `KeyEvent`

  - ### MenuShortcut

    public MenuShortcut​(int key, boolean useShiftModifier)
    Constructs a new MenuShortcut for the specified virtual keycode.
    Parameters:
      `key` - the raw keycode for this MenuShortcut, as would be returned in the keyCode field of a `KeyEvent` if this key were pressed.
      `useShiftModifier` - indicates whether this MenuShortcut is invoked with the SHIFT key down.
    See Also:
      `KeyEvent`

- ## Method Details

  - ### getKey

    public int getKey()
    Returns the raw keycode of this MenuShortcut.
    Returns:
      the raw keycode of this MenuShortcut.
    Since:
      1.1
    See Also:
      `KeyEvent`

  - ### usesShiftModifier

    public boolean usesShiftModifier()
    Returns whether this MenuShortcut must be invoked using the SHIFT key.
    Returns:
      `true` if this MenuShortcut must be invoked using the SHIFT key, `false` otherwise.
    Since:
      1.1

  - ### equals

    public boolean equals​(MenuShortcut s)
    Returns whether this MenuShortcut is the same as another: equality is defined to mean that both MenuShortcuts use the same key and both either use or don't use the SHIFT key.
    Parameters:
      `s` - the MenuShortcut to compare with this.
    Returns:
      `true` if this MenuShortcut is the same as another, `false` otherwise.
    Since:
      1.1

  - ### equals

    public boolean equals​(Object obj)
    Returns whether this MenuShortcut is the same as another: equality is defined to mean that both MenuShortcuts use the same key and both either use or don't use the SHIFT key.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - the Object to compare with this.
    Returns:
      `true` if this MenuShortcut is the same as another, `false` otherwise.
    Since:
      1.2
    See Also:
      `Object.hashCode()`, `HashMap`

  - ### hashCode

    public int hashCode()
    Returns the hashcode for this MenuShortcut.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      the hashcode for this MenuShortcut.
    Since:
      1.2
    See Also:
      `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`

  - ### toString

    public String toString()
    Returns an internationalized description of the MenuShortcut.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of this MenuShortcut.
    Since:
      1.1

  - ### paramString

    protected String paramString()
    Returns the parameter string representing the state of this MenuShortcut. This string is useful for debugging.
    Returns:
      the parameter string of this MenuShortcut.
    Since:
      1.1