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