Интерфейс KeyEventPostProcessor
- Все известные реализующие классы:
-
DefaultFocusManager,DefaultKeyboardFocusManager,FocusManager,KeyboardFocusManager
- Функциональный интерфейс:
- Это функциональный интерфейс и, следовательно, может быть использован в качестве целевого объекта для лямбда-выражения или ссылки на метод.
@FunctionalInterface public interface KeyEventPostProcessor
Класс KeyEventPostProcessor взаимодействует с текущим KeyboardFocusManager для окончательного разрешения всех необработанных событий KeyEvents. KeyEventPostProcessors, зарегистрированные в текущем KeyboardFocusManager, получат KeyEvents после того, как KeyEvents были обработаны их целевыми объектами. KeyEvents, которые в противном случае были бы отброшены, потому что ни один компонент приложения в данный момент не владеет фокусом, также будут переданы зарегистрированным KeyEventPostProcessors. Это позволит приложениям реализовывать функции, которые требуют глобальной обработки KeyEvents, такие как сочетания клавиш меню.
Обратите внимание, что сам KeyboardFocusManager реализует KeyEventPostProcessor. По умолчанию текущий KeyboardFocusManager будет последним KeyEventPostProcessor в цепочке. Текущий KeyboardFocusManager не может быть полностью дезактивирован как KeyEventPostProcessor. Однако, если KeyEventPostProcessor сообщает, что дальнейшая обработка KeyEvent не требуется, AWT будет считать событие полностью обработанным и не будет предпринимать дополнительных действий в отношении события. (Хотя можно зарегистрировать текущий KeyboardFocusManager как KeyEventPostProcessor один или несколько раз, это обычно не нужно и не рекомендуется.)
- С:
- 1.4
- См. также:
-
KeyboardFocusManager.addKeyEventPostProcessor(java.awt.KeyEventPostProcessor),KeyboardFocusManager.removeKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
postProcessKeyEvent(KeyEvent e) |
Этот метод вызывается текущим KeyboardFocusManager, запрашивая, чтобы этот KeyEventPostProcessor выполнил необходимую последующую обработку, которая должна быть частью окончательного разрешения KeyEvent. |
Методы
postProcessKeyEvent
boolean postProcessKeyEvent(KeyEvent e)
Этот метод вызывается текущим KeyboardFocusManager, запрашивая, чтобы этот KeyEventPostProcessor выполнил необходимую последующую обработку, которая должна быть частью окончательного разрешения KeyEvent. В момент вызова метода событие KeyEvent обычно уже было обработано его целевым объектом. Однако, если ни один компонент приложения в данный момент не владеет фокусом, то событие KeyEvent не было передано ни одному компоненту. Как правило, последующая обработка KeyEvent используется для реализации функций, которые требуют глобальной обработки KeyEvent, таких как сочетания клавиш меню. Обратите внимание, что если KeyEventPostProcessor хочет отправить KeyEvent, он должен использовать redispatchEvent для предотвращения повторного запроса AWT, чтобы этот KeyEventPostProcessor выполнял последующую обработку события.
Если реализация этого метода возвращает false, то KeyEvent передаётся следующему KeyEventPostProcessor в цепочке, заканчиваясь текущим KeyboardFocusManager. Если реализация возвращает true, то KeyEvent считается полностью обработанным (хотя это необязательно), и AWT не будет предпринимать никаких дальнейших действий по отношению к KeyEvent. Если реализация потребляет KeyEvent, но возвращает false, то потреблённое событие всё равно будет передано следующему KeyEventPostProcessor в цепочке. Разработчики должны проверить, было ли событие KeyEvent потребленно, прежде чем выполнять любую последующую обработку KeyEvent. По умолчанию текущий KeyboardFocusManager не будет выполнять пост-обработку в ответ на потреблённое событие KeyEvent.
- Параметры:
-
e- обрабатываемое событие KeyEvent - Возвращает:
-
trueесли AWT не должен предпринимать дальнейших действий по отношению к KeyEvent;falseв противном случае - См. также:
KeyboardFocusManager.redispatchEvent(java.awt.Component, java.awt.AWTEvent)
© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/KeyEventPostProcessor.html