Spec-Zone.ru › OpenJDK 27

Класс KeyStroke

java.lang.Object
java.awt.AWTKeyStroke
javax.swing.KeyStroke
Все реализованные интерфейсы:
Serializable
public class KeyStroke extends AWTKeyStroke
KeyStroke представляет действие клавиши на клавиатуре или эквивалентном устройстве ввода. Объекты KeyStroke могут соответствовать только нажатию или отпусканию определённой клавиши, как и события KEY_PRESSED и KEY_RELEASED класса KeyEvent; либо они могут соответствовать вводу определённого символа Java, как и события KEY_TYPED класса KeyEvent. Во всех случаях KeyStroke может задавать модификаторы (alt, shift, control, meta, altGraph или их сочетание), которые должны присутствовать во время действия для точного совпадения.

Объекты KeyStroke используются для определения событий действий высокого уровня (семантических). Вместо того чтобы перехватывать каждое нажатие клавиши и отбрасывать те, которые вас не интересуют, можно автоматически запускать действия для компонентов, с которыми зарегистрированы нужные вам сочетания клавиш.

Объекты KeyStroke неизменяемы и предназначены для уникального использования. Клиентский код не может создать объект KeyStroke; вместо этого необходимо использовать вариант getKeyStroke. Эти фабричные методы позволяют реализации KeyStroke эффективно кэшировать экземпляры и совместно использовать их.

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими версиями Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4 в пакет java.beans добавлена поддержка долгосрочного хранения всех JavaBeans. См. XMLEncoder.

Начиная с версии:
1.2
См. также:
  • Keymap
  • getKeyStroke(char)

Краткое описание методов

Модификатор и тип Метод Описание
static KeyStroke getKeyStroke(char keyChar)
Возвращает общий экземпляр KeyStroke, представляющий событие KEY_TYPED для указанного символа.
static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease)
Устарело.
используйте getKeyStroke(char)
static KeyStroke getKeyStroke(int keyCode, int modifiers)
Возвращает общий экземпляр KeyStroke по числовому коду клавиши и набору модификаторов.
static KeyStroke getKeyStroke(int keyCode, int modifiers, boolean onKeyRelease)
Возвращает общий экземпляр KeyStroke по числовому коду клавиши и набору модификаторов, указывая, активируется ли клавиша при нажатии или отпускании.
static KeyStroke getKeyStroke(Character keyChar, int modifiers)
Возвращает общий экземпляр KeyStroke, представляющий событие KEY_TYPED для указанного объекта Character и набора модификаторов.
static KeyStroke getKeyStroke(String s)
Разбирает строку и возвращает KeyStroke.
static KeyStroke getKeyStrokeForEvent(KeyEvent anEvent)
Возвращает KeyStroke, соответствующий нажатию клавиши, вызвавшему заданное событие KeyEvent.

Методы, объявленные в классе AWTKeyStroke

equals, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStrokeForEvent, getKeyChar, getKeyCode, getKeyEventType, getModifiers, hashCode, isOnKeyRelease, readResolve, registerSubclass, toString
Модификатор и тип Метод Описание
final boolean equals(Object anObject)
Возвращает true, если этот объект идентичен указанному объекту.
static AWTKeyStroke getAWTKeyStroke(char keyChar)
Возвращает общий экземпляр AWTKeyStroke, представляющий событие KEY_TYPED для указанного символа.
static AWTKeyStroke getAWTKeyStroke(int keyCode, int modifiers)
Возвращает общий экземпляр AWTKeyStroke по числовому коду клавиши и набору модификаторов.
static AWTKeyStroke getAWTKeyStroke(int keyCode, int modifiers, boolean onKeyRelease)
Возвращает общий экземпляр AWTKeyStroke по числовому коду клавиши и набору модификаторов, указывая, активируется ли клавиша при нажатии или отпускании.
static AWTKeyStroke getAWTKeyStroke(Character keyChar, int modifiers)
Возвращает общий экземпляр AWTKeyStroke, представляющий событие KEY_TYPED для указанного объекта Character и набора модификаторов.
static AWTKeyStroke getAWTKeyStroke(String s)
Разбирает строку и возвращает AWTKeyStroke.
static AWTKeyStroke getAWTKeyStrokeForEvent(KeyEvent anEvent)
Возвращает AWTKeyStroke, соответствующий нажатию клавиши, вызвавшему заданное событие KeyEvent.
final char getKeyChar()
Возвращает символ для этого AWTKeyStroke.
final int getKeyCode()
Возвращает числовой код клавиши для этого AWTKeyStroke.
final int getKeyEventType()
Возвращает тип KeyEvent, соответствующий этому AWTKeyStroke.
final int getModifiers()
Возвращает клавиши-модификаторы для этого AWTKeyStroke.
int hashCode()
Возвращает числовое значение для этого объекта, которое, вероятно, является уникальным, что делает его подходящим значением индекса в хеш-таблице.
final boolean isOnKeyRelease()
Возвращает, представляет ли этот AWTKeyStroke отпускание клавиши.
protected Object readResolve()
Возвращает кэшированный экземпляр AWTKeyStroke (или подкласса AWTKeyStroke), равный этому экземпляру.
protected static void registerSubclass(Class<?> subclass)
Устарело.
String toString()
Возвращает строку, отображающую и описывающую свойства этого объекта.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного периода реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного периода реального времени.

Подробное описание методов

getKeyStroke

public static KeyStroke getKeyStroke(char keyChar)
Возвращает общий экземпляр KeyStroke, представляющий событие KEY_TYPED для указанного символа.
Параметры:
keyChar — значение символа для клавиши клавиатуры
Возвращает:
объект KeyStroke для этой клавиши

getKeyStroke

@Deprecated public static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease)
Устарел.
используйте getKeyStroke(char)
Возвращает экземпляр KeyStroke, указывая, считается ли клавиша активированной при нажатии или отпускании. В отличие от всех остальных фабричных методов этого класса, экземпляры, возвращаемые этим методом, не обязательно кэшируются или используются совместно.
Параметры:
keyChar — значение символа для клавиши клавиатуры
onKeyRelease — true, если этот KeyStroke соответствует отпусканию клавиши; false в противном случае.
Возвращает:
объект KeyStroke для этой клавиши

getKeyStroke

public static KeyStroke getKeyStroke(Character keyChar, int modifiers)
Возвращает общий экземпляр KeyStroke, представляющий событие KEY_TYPED для указанного объекта Character и набора модификаторов. Обратите внимание, что первый параметр имеет тип Character, а не char. Это позволяет избежать случайных конфликтов при вызовах getKeyStroke(int keyCode, int modifiers). Модификаторы могут представлять собой любую комбинацию следующих значений:
  • java.awt.event.InputEvent.SHIFT_DOWN_MASK
  • java.awt.event.InputEvent.CTRL_DOWN_MASK
  • java.awt.event.InputEvent.META_DOWN_MASK
  • java.awt.event.InputEvent.ALT_DOWN_MASK
  • java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK
Также можно использовать перечисленные ниже старые модификаторы, но они преобразуются в модификаторы _DOWN_.
  • java.awt.event.InputEvent.SHIFT_MASK
  • java.awt.event.InputEvent.CTRL_MASK
  • java.awt.event.InputEvent.META_MASK
  • java.awt.event.InputEvent.ALT_MASK
  • java.awt.event.InputEvent.ALT_GRAPH_MASK
Они также могут использоваться, но преобразуются в модификаторы _DOWN_. Поскольку все эти числа являются различными степенями двойки, любая их комбинация представляет собой целое число, в котором каждый бит соответствует отдельной клавише-модификатору. Используйте 0, чтобы указать отсутствие модификаторов.
Параметры:
keyChar — объект Character, соответствующий символу клавиатуры
modifiers — побитовое ИЛИ любого набора модификаторов
Возвращает:
объект KeyStroke для этой клавиши
Исключения:
IllegalArgumentException — если keyChar имеет значение null
Начиная с:
1.3
См. также:
  • InputEvent

getKeyStroke

public static KeyStroke getKeyStroke(int keyCode, int modifiers, boolean onKeyRelease)
Возвращает общий экземпляр KeyStroke по числовому коду клавиши и набору модификаторов, указывая, активируется ли клавиша при нажатии или отпускании.

Для указания кода клавиши можно использовать константы «виртуальных клавиш», определённые в java.awt.event.KeyEvent. Например:

  • java.awt.event.KeyEvent.VK_ENTER
  • java.awt.event.KeyEvent.VK_TAB
  • java.awt.event.KeyEvent.VK_SPACE
Кроме того, код клавиши можно получить, вызвав java.awt.event.KeyEvent.getExtendedKeyCodeForChar. Модификаторы могут представлять собой любую комбинацию следующих значений:
  • java.awt.event.InputEvent.SHIFT_DOWN_MASK
  • java.awt.event.InputEvent.CTRL_DOWN_MASK
  • java.awt.event.InputEvent.META_DOWN_MASK
  • java.awt.event.InputEvent.ALT_DOWN_MASK
  • java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK
Также можно использовать старые модификаторы
  • java.awt.event.InputEvent.SHIFT_MASK
  • java.awt.event.InputEvent.CTRL_MASK
  • java.awt.event.InputEvent.META_MASK
  • java.awt.event.InputEvent.ALT_MASK
  • java.awt.event.InputEvent.ALT_GRAPH_MASK
, но они преобразуются в модификаторы _DOWN_. Поскольку все эти числа являются различными степенями двойки, любая их комбинация представляет собой целое число, в котором каждый бит соответствует отдельной клавише-модификатору. Используйте 0, чтобы указать отсутствие модификаторов.
Параметры:
keyCode — целое число, задающее числовой код клавиши клавиатуры
modifiers — побитовое ИЛИ любого набора модификаторов
onKeyRelease — true, если KeyStroke должен соответствовать отпусканию клавиши; false в противном случае.
Возвращает:
объект KeyStroke для этой клавиши
См. также:
  • KeyEvent
  • InputEvent

getKeyStroke

public static KeyStroke getKeyStroke(int keyCode, int modifiers)
Возвращает общий экземпляр KeyStroke по числовому коду клавиши и набору модификаторов. Возвращённый KeyStroke будет соответствовать нажатию клавиши.

Для указания кода клавиши можно использовать константы «виртуальных клавиш», определённые в java.awt.event.KeyEvent. Например:

  • java.awt.event.KeyEvent.VK_ENTER
  • java.awt.event.KeyEvent.VK_TAB
  • java.awt.event.KeyEvent.VK_SPACE
Кроме того, код клавиши можно получить, вызвав java.awt.event.KeyEvent.getExtendedKeyCodeForChar. Модификаторы могут представлять собой любую комбинацию следующих значений:
  • java.awt.event.InputEvent.SHIFT_DOWN_MASK
  • java.awt.event.InputEvent.CTRL_DOWN_MASK
  • java.awt.event.InputEvent.META_DOWN_MASK
  • java.awt.event.InputEvent.ALT_DOWN_MASK
  • java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK
Также можно использовать старые модификаторы
  • java.awt.event.InputEvent.SHIFT_MASK
  • java.awt.event.InputEvent.CTRL_MASK
  • java.awt.event.InputEvent.META_MASK
  • java.awt.event.InputEvent.ALT_MASK
  • java.awt.event.InputEvent.ALT_GRAPH_MASK
, но они преобразуются в модификаторы _DOWN_. Поскольку все эти числа являются различными степенями двойки, любая их комбинация представляет собой целое число, в котором каждый бит соответствует отдельной клавише-модификатору. Используйте 0, чтобы указать отсутствие модификаторов.
Параметры:
keyCode — целое число, задающее числовой код клавиши клавиатуры
modifiers — побитовое ИЛИ любого набора модификаторов
Возвращает:
объект KeyStroke для этой клавиши
См. также:
  • KeyEvent
  • InputEvent

getKeyStrokeForEvent

public static KeyStroke getKeyStrokeForEvent(KeyEvent anEvent)
Возвращает KeyStroke, который представляет нажатие клавиши, вызвавшее данное событие KeyEvent.

Этот метод получает keyChar из события KeyTyped, а keyCode — из события KeyPressed или KeyReleased. Модификаторы KeyEvent получаются для всех трех типов KeyEvent.

Параметры:
anEvent — событие KeyEvent, из которого нужно получить KeyStroke
Возвращает:
KeyStroke, вызвавший событие
Исключения:
NullPointerException — если anEvent равно null

getKeyStroke

public static KeyStroke getKeyStroke(String s)
Разбирает строку и возвращает KeyStroke. Строка должна иметь следующий синтаксис:
   <modifiers>* (<typedID> | <pressedReleasedID>)

   modifiers := shift | control | ctrl | meta | alt | altGraph
   typedID := typed <typedKey>
   typedKey := string of length 1 giving Unicode character.
   pressedReleasedID := (pressed | released) key
   key := KeyEvent key code name, i.e. the name following "VK_".
Если не указано typed, pressed или released, предполагается pressed. Вот несколько примеров:
    "INSERT" => getKeyStroke(KeyEvent.VK_INSERT, 0);
    "control DELETE" => getKeyStroke(KeyEvent.VK_DELETE, InputEvent.CTRL_MASK);
    "alt shift X" => getKeyStroke(KeyEvent.VK_X, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK);
    "alt shift released X" => getKeyStroke(KeyEvent.VK_X, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, true);
    "typed a" => getKeyStroke('a');
Для обеспечения обратной совместимости указание строки null или строки с неправильным форматом приводит к возврату null.
Параметры:
s — строка в формате, описанном выше
Возвращает:
объект KeyStroke для этой строки или null, если указанная строка равна null или имеет неправильный формат
См. также:
  • KeyEvent

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API