Spec-Zone.ru › OpenJDK 25

Класс 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

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

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

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/KeyStroke.html

Spec-Zone.ru

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