Класс KeyboardFocusManager
- Все реализованные интерфейсы:
-
KeyEventDispatcher,KeyEventPostProcessor
- Непосредственные подклассы:
DefaultKeyboardFocusManager
public abstract class KeyboardFocusManager extends Object implements KeyEventDispatcher, KeyEventPostProcessor
Класс KeyboardFocusManager является централизованным местом для запроса клиентом владельца фокуса и инициации изменений фокуса, а также диспетчером событий FocusEvent, WindowEvent, связанных с фокусом, и KeyEvents.
Некоторые браузеры разделяют апплеты в разных кодовых базах на отдельные контексты и устанавливают барьеры между этими контекстами. В такой ситуации на каждый контекст будет приходиться один KeyboardFocusManager. Другие браузеры помещают все апплеты в один контекст, что подразумевает наличие только одного глобального KeyboardFocusManager для всех апплетов. Это поведение зависит от реализации. Для получения дополнительной информации см. документацию вашего браузера. Однако независимо от того, сколько контекстов может быть, владельцем фокуса, фокусированным окном или активным окном может быть не более одного на каждый ClassLoader.
Дополнительную информацию можно найти в Руководстве по использованию подсистемы фокуса, разделе The Java Tutorial, и в Спецификации фокуса.
- С:
- 1.4
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
BACKWARD_TRAVERSAL_KEYS |
Идентификатор клавиш обратного перемещения по фокусу. |
static final int |
DOWN_CYCLE_TRAVERSAL_KEYS |
Идентификатор клавиш циклического перемещения по фокусу вниз. |
static final int |
FORWARD_TRAVERSAL_KEYS |
Идентификатор клавиш прямого перемещения по фокусу. |
static final int |
UP_CYCLE_TRAVERSAL_KEYS |
Идентификатор клавиш циклического перемещения по фокусу вверх. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
KeyboardFocusManager() |
Инициализирует KeyboardFocusManager. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addKeyEventDispatcher |
Добавляет KeyEventDispatcher в цепочку диспетчеризации KeyboardFocusManager. |
void |
addKeyEventPostProcessor |
Добавляет KeyEventPostProcessor в цепочку постобработки KeyboardFocusManager. |
void |
addPropertyChangeListener |
Добавляет PropertyChangeListener в список слушателей. |
void |
addPropertyChangeListener |
Добавляет PropertyChangeListener в список слушателей для определённого свойства. |
void |
addVetoableChangeListener |
Добавляет VetoableChangeListener в список слушателей. |
void |
addVetoableChangeListener |
Добавляет VetoableChangeListener в список слушателей для определённого свойства. |
void |
clearFocusOwner() |
Очищает владельца фокуса как на уровне Java, так и на уровне native, если владелец фокуса существует и находится в том же контексте, что и вызывающая нить; в противном случае метод возвращается бездействием. |
void |
clearGlobalFocusOwner() |
Очищает глобального владельца фокуса как на уровне Java, так и на уровне native. |
protected abstract void |
dequeueKeyEvents |
Вызывается AWT для уведомления KeyboardFocusManager о том, что он должен отменить отложенную диспетчеризацию KeyEvents. |
protected abstract void |
discardKeyEvents |
Вызывается AWT для уведомления KeyboardFocusManager о том, что он должен отменить отложенную диспетчеризацию KeyEvents. |
abstract boolean |
dispatchEvent |
Этот метод вызывается диспетчером событий AWT с просьбой текущему KeyboardFocusManager выполнить диспетчеризацию указанного события от его имени. |
abstract boolean |
dispatchKeyEvent |
Обычно этот метод вызывается dispatchEvent, если ни один другой KeyEventDispatcher в цепочке диспетчеризации не обработать KeyEvent или если другие KeyEventDispatchers не зарегистрированы. |
final void |
downFocusCycle() |
Перемещает фокус вниз на один цикл прохождения фокуса от текущего владельца фокуса, только если текущий владелец фокуса является контейнером, являющимся корнем цикла фокуса. |
abstract void |
downFocusCycle |
Перемещает фокус вниз на один цикл прохождения фокуса. |
protected abstract void |
enqueueKeyEvents |
Вызывается AWT для уведомления KeyboardFocusManager о том, что он должен отложить диспетчеризацию KeyEvents до тех пор, пока указанный Component не станет владельцем фокуса. |
protected void |
firePropertyChange |
Генерирует PropertyChangeEvent в ответ на изменение привязанного свойства. |
protected void |
fireVetoableChange |
Генерирует PropertyChangeEvent в ответ на изменение вето-свойства. |
final void |
focusNextComponent() |
Фокусирует Component после текущего владельца фокуса. |
abstract void |
focusNextComponent |
Фокусирует Component после aComponent, как правило, на основе FocusTraversalPolicy. |
final void |
focusPreviousComponent() |
Фокусирует Component перед текущим владельцем фокуса. |
abstract void |
focusPreviousComponent |
Фокусирует Component перед aComponent, как правило, на основе FocusTraversalPolicy. |
Window |
getActiveWindow() |
Возвращает активное окно, если активное окно находится в том же контексте, что и вызывающая нить. |
Container |
getCurrentFocusCycleRoot() |
Возвращает текущий корень цикла фокуса, если текущий корень цикла фокуса находится в том же контексте, что и вызывающая нить. |
static KeyboardFocusManager |
getCurrentKeyboardFocusManager() |
Возвращает текущий экземпляр KeyboardFocusManager для контекста вызывающей нити. |
Set<AWTKeyStroke> |
getDefaultFocusTraversalKeys |
Возвращает набор стандартных клавиш прохода фокуса для заданной операции перемещения. |
FocusTraversalPolicy |
getDefaultFocusTraversalPolicy() |
Возвращает стандартную FocusTraversalPolicy. |
Window |
getFocusedWindow() |
Возвращает окно с фокусом, если окно с фокусом находится в том же контексте, что и вызывающая нить. |
Component |
getFocusOwner() |
Возвращает владельца фокуса, если владелец фокуса находится в том же контексте, что и вызывающая нить. |
protected Window |
getGlobalActiveWindow() |
Возвращает активное окно, даже если вызывающая нить находится в другом контексте, чем активное окно. |
protected Container |
getGlobalCurrentFocusCycleRoot() |
Возвращает текущий корень цикла фокуса, даже если вызывающая нить находится в другом контексте, чем текущий корень цикла фокуса. |
protected Window |
getGlobalFocusedWindow() |
Возвращает окно с фокусом, даже если вызывающая нить находится в другом контексте, чем окно с фокусом. |
protected Component |
getGlobalFocusOwner() |
Возвращает владельца фокуса, даже если вызывающая нить находится в другом контексте, чем владелец фокуса. |
protected Component |
getGlobalPermanentFocusOwner() |
Возвращает постоянного владельца фокуса, даже если вызывающая нить находится в другом контексте, чем постоянный владелец фокуса. |
protected List<KeyEventDispatcher> |
getKeyEventDispatchers() |
Возвращает цепочку KeyEventDispatcher KeyboardFocusManager в виде списка. |
protected List<KeyEventPostProcessor> |
getKeyEventPostProcessors() |
Возвращает цепочку KeyEventPostProcessor KeyboardFocusManager в виде списка. |
Component |
getPermanentFocusOwner() |
Возвращает постоянного владельца фокуса, если постоянный владелец фокуса находится в том же контексте, что и вызывающая нить. |
PropertyChangeListener[] |
getPropertyChangeListeners() |
Возвращает массив всех слушателей изменений свойств, зарегистрированных в этом диспетчере фокуса клавиатуры. |
PropertyChangeListener[] |
getPropertyChangeListeners |
Возвращает массив всех PropertyChangeListener , связанных с заданным свойством. |
VetoableChangeListener[] |
getVetoableChangeListeners() |
Возвращает массив всех слушателей изменений вето, зарегистрированных в этом диспетчере фокуса клавиатуры. |
VetoableChangeListener[] |
getVetoableChangeListeners |
Возвращает массив всех VetoableChangeListener , связанных с заданным свойством. |
abstract boolean |
postProcessKeyEvent |
Этот метод будет вызван dispatchKeyEvent. |
abstract void |
processKeyEvent |
Инициализирует операцию перемещения фокуса только в том случае, если KeyEvent представляет собой клавишу перемещения фокуса для указанного focusedComponent. |
final void |
redispatchEvent |
Перевыполняет AWTEvent таким образом, чтобы диспетчер событий AWT не запрашивал повторно, чтобы KeyboardFocusManager или любой установленный KeyEventDispatcher повторно вызывали событие. |
void |
removeKeyEventDispatcher |
Удаляет KeyEventDispatcher, который был ранее добавлен в цепочку диспетчеризации KeyboardFocusManager. |
void |
removeKeyEventPostProcessor |
Удаляет ранее добавленный KeyEventPostProcessor из цепочки постобработки KeyboardFocusManager. |
void |
removePropertyChangeListener |
Удаляет PropertyChangeListener из списка слушателей. |
void |
removePropertyChangeListener |
Удаляет PropertyChangeListener из списка слушателей для определённого свойства. |
void |
removeVetoableChangeListener |
Удаляет VetoableChangeListener из списка слушателей. |
void |
removeVetoableChangeListener |
Удаляет VetoableChangeListener из списка слушателей для определённого свойства. |
static void |
setCurrentKeyboardFocusManager |
Устанавливает текущий экземпляр KeyboardFocusManager для контекста вызывающей нити. |
void |
setDefaultFocusTraversalKeys |
Устанавливает стандартные клавиши перемещения фокуса для заданной операции перемещения. |
void |
setDefaultFocusTraversalPolicy |
Устанавливает стандартную FocusTraversalPolicy. |
protected void |
setGlobalActiveWindow |
Устанавливает активное окно. |
void |
setGlobalCurrentFocusCycleRoot |
Устанавливает текущий корень цикла фокуса. |
protected void |
setGlobalFocusedWindow |
Устанавливает окно с фокусом. |
protected void |
setGlobalFocusOwner |
Устанавливает владельца фокуса. |
protected void |
setGlobalPermanentFocusOwner |
Устанавливает постоянного владельца фокуса. |
final void |
upFocusCycle() |
Перемещает фокус на одну позицию вверх по циклу прохождения фокуса от текущего владельца фокуса. |
abstract void |
upFocusCycle |
Перемещает фокус на одну позицию вверх по циклу прохождения фокуса. |
Подробное описание полей
FORWARD_TRAVERSAL_KEYS
public static final int FORWARD_TRAVERSAL_KEYS
BACKWARD_TRAVERSAL_KEYS
public static final int BACKWARD_TRAVERSAL_KEYS
UP_CYCLE_TRAVERSAL_KEYS
public static final int UP_CYCLE_TRAVERSAL_KEYS
DOWN_CYCLE_TRAVERSAL_KEYS
public static final int DOWN_CYCLE_TRAVERSAL_KEYS
Подробное описание конструкторов
KeyboardFocusManager
public KeyboardFocusManager()
Подробное описание методов
getCurrentKeyboardFocusManager
public static KeyboardFocusManager getCurrentKeyboardFocusManager()
- Возвращает:
- KeyboardFocusManager контекста текущей нити
- См. также:
setCurrentKeyboardFocusManager
public static void setCurrentKeyboardFocusManager(KeyboardFocusManager newManager) throws SecurityException
Если установлен SecurityManager, вызывающая нить должна иметь разрешение AWTPermission "replaceKeyboardFocusManager", чтобы заменить текущий KeyboardFocusManager. Если этого разрешения нет, этот метод выбросит SecurityException, и текущий KeyboardFocusManager останется без изменений.
- Параметры:
-
newManager- новый KeyboardFocusManager для контекста текущей нити - Исключение:
-
SecurityException- если у вызывающей нити нет разрешения заменить текущий KeyboardFocusManager - См. также:
getFocusOwner
public Component getFocusOwner()
- Возвращает:
- владелец фокуса или null, если владелец фокуса не является членом контекста вызывающей нити
- См. также:
getGlobalFocusOwner
protected Component getGlobalFocusOwner() throws SecurityException
Этот метод выбросит SecurityException, если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити.
- Возвращает:
- владелец фокуса
- Исключение:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если у вызывающей нити нет разрешения "replaceKeyboardFocusManager" - См. также:
setGlobalFocusOwner
protected void setGlobalFocusOwner(Component focusOwner) throws SecurityException
Этот метод фактически не устанавливает фокус на указанный компонент. Он просто сохраняет значение, которое впоследствии будет возвращено getFocusOwner(). Используйте Component.requestFocus() или Component.requestFocusInWindow() для изменения владельца фокуса, с учетом ограничений платформы.
- Параметры:
-
focusOwner- владелец фокуса - Исключение:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если у вызывающей нити нет разрешения "replaceKeyboardFocusManager" - См. также:
clearFocusOwner
public void clearFocusOwner()
Компонент владельца фокуса получит постоянное событие FOCUS_LOST. После завершения этой операции нативная система оконного интерфейса отбросит все сгенерированные пользователем KeyEvents, пока пользователь не выберет новый компонент для получения фокуса или компонент не получит фокус явно с помощью вызова requestFocus(). Эта операция не изменяет фокусированные или активные окна.
- С момента:
- 1.8
- См. также:
clearGlobalFocusOwner
public void clearGlobalFocusOwner() throws SecurityException
requestFocus(). Эта операция не изменяет фокусированные или активные окна. Если установлен SecurityManager, вызывающая нить должна иметь разрешение AWTPermission "replaceKeyboardFocusManager". Если этого разрешения нет, этот метод выбросит SecurityException, и текущий владелец фокуса не будет очищен.
Этот метод предназначен для использования только KeyboardFocusManager, установленным в качестве текущего KeyboardFocusManager для контекста вызывающей нити. Он не предназначен для общего использования клиентами.
- Исключение:
-
SecurityException- если у вызывающей нити нет разрешения "replaceKeyboardFocusManager" - См. также:
getPermanentFocusOwner
public Component getPermanentFocusOwner()
- Returns:
- постоянный владелец фокуса или null, если постоянный владелец фокуса не является членом контекста вызывающей нити
- See Also:
getGlobalPermanentFocusOwner
protected Component getGlobalPermanentFocusOwner() throws SecurityException
- Returns:
- постоянный владелец фокуса
- Throws:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - See Also:
setGlobalPermanentFocusOwner
protected void setGlobalPermanentFocusOwner(Component permanentFocusOwner) throws SecurityException
Этот метод фактически не устанавливает фокус на указанный компонент. Он просто сохраняет значение, которое впоследствии будет возвращено getPermanentFocusOwner(). Используйте Component.requestFocus() или Component.requestFocusInWindow() для изменения владельца фокуса, с учетом ограничений платформы.
- Parameters:
-
permanentFocusOwner- постоянный владелец фокуса - Throws:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - See Also:
getFocusedWindow
public Window getFocusedWindow()
- Returns:
- окно с фокусом или null, если окно с фокусом не является членом контекста вызывающей нити
- See Also:
getGlobalFocusedWindow
protected Window getGlobalFocusedWindow() throws SecurityException
- Returns:
- окно с фокусом
- Throws:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - See Also:
setGlobalFocusedWindow
protected void setGlobalFocusedWindow(Window focusedWindow) throws SecurityException
Этот метод фактически не изменяет окно с фокусом в системе отображения. Он просто сохраняет значение, которое впоследствии будет возвращено getFocusedWindow(). Используйте Component.requestFocus() или Component.requestFocusInWindow() для изменения окна с фокусом, с учетом ограничений платформы.
- Parameters:
-
focusedWindow- окно с фокусом - Throws:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - See Also:
getActiveWindow
public Window getActiveWindow()
- Returns:
- активное окно или null, если активное окно не является членом контекста вызывающей нити
- See Also:
getGlobalActiveWindow
protected Window getGlobalActiveWindow() throws SecurityException
- Returns:
- активное окно
- Throws:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - See Also:
setGlobalActiveWindow
protected void setGlobalActiveWindow(Window activeWindow) throws SecurityException
Этот метод фактически не изменяет активное окно в системе отображения. Он просто сохраняет значение, которое впоследствии будет возвращено getActiveWindow(). Используйте Component.requestFocus() или Component.requestFocusInWindow() для изменения активного окна, с учетом ограничений платформы.
- Parameters:
-
activeWindow- активное окно - Throws:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - See Also:
getDefaultFocusTraversalPolicy
public FocusTraversalPolicy getDefaultFocusTraversalPolicy()
- Returns:
- политика FocusTraversalPolicy по умолчанию. null никогда не будет возвращено.
- See Also:
Установить политику обхода фокуса по умолчанию
public void setDefaultFocusTraversalPolicy(FocusTraversalPolicy defaultPolicy)
- Параметры:
-
defaultPolicy- новая политика обхода фокуса по умолчанию - Исключения:
-
IllegalArgumentException- если defaultPolicy равно null - См. также:
Установить клавиши обхода фокуса по умолчанию
public void setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
Set будет действовать для всех Window без явно определенных собственных настроек. Эта настройка Set также будет наследуется рекурсивно любым дочерним Component этих Windows без явно определенных собственных настроек. Значения по умолчанию для клавиш обхода фокуса по умолчанию зависят от реализации. Sun рекомендует, чтобы все реализации для конкретной платформы использовали одни и те же значения по умолчанию. Рекомендации для Windows и Unix приведены ниже. Эти рекомендации используются в реализациях Sun AWT.
| Идентификатор | Значение | Значение по умолчанию |
|---|---|---|
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS |
Нормальный прямой обход клавиатурой |
TAB на KEY_PRESSED, CTRL-TAB на KEY_PRESSED |
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS |
Нормальный обратный обход клавиатурой |
SHIFT-TAB на KEY_PRESSED, CTRL-SHIFT-TAB на KEY_PRESSED |
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS |
Переход наверх по циклу обхода фокуса | нет |
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS |
Переход вниз по циклу обхода фокуса | нет |
Set; Collections.EMPTY_SET рекомендуется. Используя API AWTKeyStroke, код приложения может указать, на каких из двух конкретных KeyEvent - KEY_PRESSED или KEY_RELEASED, произойдет операция обхода фокуса. Независимо от того, какой KeyEvent указан, однако, все KeyEvent связанные с клавишей обхода фокуса, включая связанное событие KEY_TYPED, будут обработаны и не будут переданы ни одному Component. Это ошибка во время выполнения указывать событие KEY_TYPED как сопоставленное с операцией обхода фокуса или сопоставлять одно и то же событие с несколькими операциями обхода фокуса по умолчанию.
Этот метод может выбросить ClassCastException если какой-либо Object в keystrokes не является AWTKeyStroke.
- Параметры:
-
id- один изKeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, илиKeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS -
keystrokes- множествоAWTKeyStrokeдля указанной операции - Исключения:
-
IllegalArgumentException- если id не является одним изKeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, илиKeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS, или если keystrokes пусто, или если keystrokes содержитnull, или если какая-либо клавиша представляет собой событиеKEY_TYPED, или если любая клавиша уже сопоставлена с другой операцией обхода фокуса по умолчанию - См. также:
Получить клавиши обхода фокуса по умолчанию
public Set<AWTKeyStroke> getDefaultFocusTraversalKeys(int id)
setDefaultFocusTraversalKeys будет действовать для всех окон без явно определенных собственных настроек. Это множество также будет наследуется рекурсивно любым дочерним компонентом этих окон без явно определенных собственных настроек. (См. setDefaultFocusTraversalKeys для полного описания каждой операции.)- Параметры:
-
id- одно из KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS или KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS - Возвращает:
- множество
AWTKeyStrokeдля заданной операции; множествоSetбудет неизменяемым и может быть пустым;nullникогда не будет возвращено - Исключения:
-
IllegalArgumentException- если id не является одним из KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS или KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS - См. также:
Получить текущий корень цикла фокуса
public Container getCurrentFocusCycleRoot()
Этот метод предназначен только для использования KeyboardFocusManagers и реализациями фокуса. Он не предназначен для общего использования клиентами.
- Возвращает:
- текущий корень цикла фокуса или null, если текущий корень цикла фокуса не является членом контекста вызывающей нити
- См. также:
Получить глобальный текущий корень цикла фокуса
protected Container getGlobalCurrentFocusCycleRoot() throws SecurityException
- Возвращает:
- текущий корень цикла фокуса или null, если текущий корень цикла фокуса не является членом контекста вызывающей нити
- Исключения:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
Установить глобальный текущий корень цикла фокуса
public void setGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot) throws SecurityException
Если установлен SecurityManager, вызывающая нить должна иметь разрешение "replaceKeyboardFocusManager" AWTPermission. Если это разрешение не предоставлено, этот метод выбросит SecurityException, и текущий корень цикла фокуса не будет изменен.
Этот метод предназначен только для использования KeyboardFocusManagers и реализациями фокуса. Он не предназначен для общего использования клиентами.
- Параметры:
-
newFocusCycleRoot- новый корень цикла фокуса - Исключения:
-
SecurityException- если у вызывающей нити нет разрешения "replaceKeyboardFocusManager" - См. также:
addPropertyChangeListener
public void addPropertyChangeListener(PropertyChangeListener listener)
- управляет ли KeyboardFocusManager в данный момент фокусом для контекста браузера этого приложения или апплета ("managingFocus")
- владелец фокуса ("focusOwner")
- постоянный владелец фокуса ("permanentFocusOwner")
- фокусированное окно ("focusedWindow")
- активное окно ("activeWindow")
- политика обработки перехода фокуса по умолчанию ("defaultFocusTraversalPolicy")
- множество клавиш для перехода вперёд по умолчанию ("forwardDefaultFocusTraversalKeys")
- множество клавиш для перехода назад по умолчанию ("backwardDefaultFocusTraversalKeys")
- множество клавиш для перехода вверх по циклу по умолчанию ("upCycleDefaultFocusTraversalKeys")
- множество клавиш для перехода вниз по циклу по умолчанию ("downCycleDefaultFocusTraversalKeys")
- текущая корневая точка цикла фокуса ("currentFocusCycleRoot")
- Parameters:
-
listener- обработчик изменений свойств, который нужно добавить - See Also:
removePropertyChangeListener
public void removePropertyChangeListener(PropertyChangeListener listener)
Если listener равен null, исключение не выбрасывается, и никаких действий не выполняется.
- Parameters:
-
listener- обработчик изменений свойств, который нужно удалить - See Also:
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners()
- Returns:
- все обработчики изменений свойств этого менеджера фокуса клавиатуры или пустой массив, если такие обработчики не зарегистрированы
- Since:
- 1.4
- See Also:
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
- управляет ли KeyboardFocusManager в данный момент фокусом для контекста браузера этого приложения или апплета ("managingFocus")
- владелец фокуса ("focusOwner")
- постоянный владелец фокуса ("permanentFocusOwner")
- фокусированное окно ("focusedWindow")
- активное окно ("activeWindow")
- политика обработки перехода фокуса по умолчанию ("defaultFocusTraversalPolicy")
- множество клавиш для перехода вперёд по умолчанию ("forwardDefaultFocusTraversalKeys")
- множество клавиш для перехода назад по умолчанию ("backwardDefaultFocusTraversalKeys")
- множество клавиш для перехода вверх по циклу по умолчанию ("upCycleDefaultFocusTraversalKeys")
- множество клавиш для перехода вниз по циклу по умолчанию ("downCycleDefaultFocusTraversalKeys")
- текущая корневая точка цикла фокуса ("currentFocusCycleRoot")
- Parameters:
-
propertyName- одно из имён свойств, указанных выше -
listener- обработчик изменений свойств, который нужно добавить - See Also:
removePropertyChangeListener
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
Если listener равен null, исключение не выбрасывается, и никаких действий не выполняется.
- Parameters:
-
propertyName- допустимое имя свойства -
listener- обработчик изменений свойств, который нужно удалить - See Also:
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
- Parameters:
-
propertyName- имя свойства - Returns:
- все обработчики изменений свойств, связанные с указанным свойством, или пустой массив, если такие обработчики не добавлены.
- Since:
- 1.4
- See Also:
firePropertyChange
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)
- Parameters:
-
propertyName- имя свойства, которое изменилось -
oldValue- предыдущее значение свойства -
newValue- новое значение свойства
addVetoableChangeListener
public void addVetoableChangeListener(VetoableChangeListener listener)
- владелец фокуса ("focusOwner")
- постоянный владелец фокуса ("permanentFocusOwner")
- фокусированное окно ("focusedWindow")
- активное окно ("activeWindow")
- Parameters:
-
listener- обработчик изменений вето, который нужно добавить - See Also:
removeVetoableChangeListener
public void removeVetoableChangeListener(VetoableChangeListener listener)
Если listener равен null, исключение не выбрасывается, и никаких действий не выполняется.
- Parameters:
-
listener- обработчик изменений вето, который нужно удалить - See Also:
getVetoableChangeListeners
public VetoableChangeListener[] getVetoableChangeListeners()
- Returns:
- все обработчики изменений вето этого менеджера фокуса клавиатуры или пустой массив, если такие обработчики не зарегистрированы
- Since:
- 1.4
- See Also:
addVetoableChangeListener
public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener)
- владелец фокуса ("focusOwner")
- постоянный владелец фокуса ("permanentFocusOwner")
- активное окно ("focusedWindow")
- активное окно ("activeWindow")
- Parameters:
-
propertyName- одно из имён свойств, перечисленных выше -
listener- добавляемый обработчик VetoableChangeListener - See Also:
removeVetoableChangeListener
public void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener)
Если обработчик равен null, исключение не выбрасывается, и никаких действий не выполняется.
- Parameters:
-
propertyName- допустимое имя свойства -
listener- удаляемый обработчик VetoableChangeListener - See Also:
getVetoableChangeListeners
public VetoableChangeListener[] getVetoableChangeListeners(String propertyName)
VetoableChangeListener для указанного свойства.- Parameters:
-
propertyName- имя свойства - Returns:
- все обработчики
VetoableChangeListenerдля указанного свойства или пустой массив, если такие обработчики не добавлены. - Since:
- 1.4
- See Also:
fireVetoableChange
protected void fireVetoableChange(String propertyName, Object oldValue, Object newValue) throws PropertyVetoException
- Parameters:
-
propertyName- имя свойства, которое изменилось -
oldValue- предыдущее значение свойства -
newValue- новое значение свойства - Throws:
-
PropertyVetoException- если обработчикVetoableChangeListenerвыбросилPropertyVetoException
addKeyEventDispatcher
public void addKeyEventDispatcher(KeyEventDispatcher dispatcher)
true из своего метода dispatchKeyEvent. Не существует ограничения на общее число добавленных KeyEventDispatchers или на количество добавлений одного и того же экземпляра KeyEventDispatcher. Если задан null-диспетчер, никаких действий не выполняется и исключение не выбрасывается.
В многопоточной приложении KeyEventDispatcher ведет себя так же, как и другие слушатели AWT. См. AWT Threading Issues для получения дополнительных сведений.
- Parameters:
-
dispatcher- KeyEventDispatcher для добавления в цепочку диспетчеров - See Also:
removeKeyEventDispatcher
public void removeKeyEventDispatcher(KeyEventDispatcher dispatcher)
addKeyEventDispatcher. Если задан null-диспетчер, если указанный диспетчер не находится в цепочке диспетчеров, или если KeyboardFocusManager указан без явной перерегистрации, никаких действий не выполняется и исключение не выбрасывается.
В многопоточной приложении KeyEventDispatcher ведет себя так же, как и другие слушатели AWT. См. AWT Threading Issues для получения дополнительных сведений.
- Parameters:
-
dispatcher- KeyEventDispatcher для удаления из цепочки диспетчеров - See Also:
getKeyEventDispatchers
protected List<KeyEventDispatcher> getKeyEventDispatchers()
addKeyEventDispatcher. Если другие KeyEventDispatchers не зарегистрированы, реализации могут вернуть null или список длины 0. Код клиента не должен делать предположений об одном поведении над другим, и не должен предполагать, что поведение, однажды установленное, не изменится.- Returns:
- возможно null или пустой список KeyEventDispatchers
- See Also:
addKeyEventPostProcessor
public void addKeyEventPostProcessor(KeyEventPostProcessor processor)
true из своего метода postProcessKeyEvent. Не существует ограничения на общее число добавленных KeyEventPostProcessors или на количество добавлений одного и того же экземпляра KeyEventPostProcessor. Если задан null-постобработчик, никаких действий не выполняется и исключение не выбрасывается.
В многопоточной приложении KeyEventPostProcessor ведет себя так же, как и другие слушатели AWT. См. AWT Threading Issues для получения дополнительных сведений.
- Parameters:
-
processor- KeyEventPostProcessor для добавления в цепочку постобработчиков - See Also:
removeKeyEventPostProcessor
public void removeKeyEventPostProcessor(KeyEventPostProcessor processor)
addKeyEventPostProcessor. Если задан null-постобработчик, если указанный постобработчик не находится в цепочке постобработчиков, или если KeyboardFocusManager указан без явного добавления, никаких действий не выполняется и исключение не выбрасывается.
В многопоточной приложении KeyEventPostProcessor ведет себя так же, как и другие слушатели AWT. См. AWT Threading Issues для получения дополнительных сведений.
- Parameters:
-
processor- KeyEventPostProcessor для удаления из цепочки постобработчиков - See Also:
getKeyEventPostProcessors
protected List<KeyEventPostProcessor> getKeyEventPostProcessors()
addKeyEventPostProcessor. Если обработчики событий KeyEvent не зарегистрированы, реализации могут вернуть null или список длиной 0. Код приложения не должен делать предположений об одном поведении в ущерб другому, ни о том, что поведение, однажды установленное, не изменится.- Возвращает:
- возможно, нулевой или пустой список KeyEventPostProcessors
- См. также:
dispatchEvent
public abstract boolean dispatchEvent(AWTEvent e)
redispatchEvent для предотвращения рекурсивного запроса диспетчером событий AWT, чтобы KeyboardFocusManager снова обработало событие. Если этот метод возвращает false, то диспетчер событий AWT попытается обработать событие самостоятельно.- Параметры:
-
e- обрабатываемое AWTEvent - Возвращает:
-
trueесли этот метод обработало событие;falseв противном случае - См. также:
redispatchEvent
public final void redispatchEvent(Component target, AWTEvent e)
dispatchEvent и определенные пользователем KeyEventDispatchers должны вызывать redispatchEvent(target, e) вместо target.dispatchEvent(e) для обработки события. Этот метод предназначен только для использования KeyboardFocusManagers и KeyEventDispatchers. Он не предназначен для общего использования клиентами.
- Параметры:
-
target- Компонент, которому должно быть обработано событие -
e- событие для обработки - См. также:
dispatchKeyEvent
public abstract boolean dispatchKeyEvent(KeyEvent e)
dispatchEvent если ни один другой KeyEventDispatcher в цепочке диспетчеров не обработало KeyEvent или если другие KeyEventDispatchers не зарегистрированы. Если реализация этого метода возвращает false, dispatchEvent может попытаться обработать KeyEvent сам или просто вернуть false. Если возвращается true, dispatchEvent должен также вернуть true. - Определено в:
-
dispatchKeyEventв интерфейсеKeyEventDispatcher - Параметры:
-
e- KeyEvent, который текущий KeyboardFocusManager запросил, чтобы этот KeyEventDispatcher обработало - Возвращает:
-
trueесли KeyEvent был обработан;falseв противном случае - См. также:
postProcessKeyEvent
public abstract boolean postProcessKeyEvent(KeyEvent e)
dispatchKeyEvent. По умолчанию этот метод обрабатывает любые необработанные KeyEvents, которые сопоставляются с AWT MenuShortcut, потребляя событие и активизируя ярлык.- Определено в:
-
postProcessKeyEventв интерфейсеKeyEventPostProcessor - Параметры:
-
e- KeyEvent для последующей обработки - Возвращает:
-
trueдля указания того, что ни один другой KeyEventPostProcessor не будет уведомлен о KeyEvent. - См. также:
processKeyEvent
public abstract void processKeyEvent(Component focusedComponent, KeyEvent e)
- Параметры:
-
focusedComponent- Компонент, который будет основой операции перехода фокуса, если указанное событие представляет собой клавишу перехода фокуса для данного компонента -
e- событие, которое может представлять собой клавишу перехода фокуса
enqueueKeyEvents
protected abstract void enqueueKeyEvents(long after, Component untilFocused)
dequeueKeyEvents или discardKeyEvents. - Параметры:
-
after- отметка времени текущего события или текущее системное время, если текущее событие не имеет отметки времени или AWT не может определить, какое событие обрабатывается в данный момент -
untilFocused- Компонент, который должен получить событие FOCUS_GAINED перед любыми ожидающими KeyEvents - См. также:
dequeueKeyEvents
protected abstract void dequeueKeyEvents(long after, Component untilFocused)
enqueueKeyEvents с той же отметкой времени и Component, должны быть освобождены для обычной обработки текущим владельцем фокуса. Если указанная отметка времени меньше нуля, запрос на отложенную обработку для указанного Component с наиболее ранней отметкой времени (если таковой имеется) должен быть отменен.- Параметры:
-
after- отметка времени, указанная в вызовеenqueueKeyEvents, или любое значение < 0 -
untilFocused- Component, указанный в вызовеenqueueKeyEvents - См. также:
discardKeyEvents
protected abstract void discardKeyEvents(Component comp)
enqueueKeyEvents с тем же Component, должны быть отброшены.- Параметры:
-
comp- Компонент, указанный в одном или нескольких вызовахenqueueKeyEvents - См. также:
focusNextComponent
public abstract void focusNextComponent(Component aComponent)
- Параметры:
-
aComponent- компонент, являющийся основой для операции перехода фокуса - См. также:
focusPreviousComponent
public abstract void focusPreviousComponent(Component aComponent)
- Параметры:
-
aComponent- компонент, являющийся основой для операции перехода фокуса - См. также:
upFocusCycle
public abstract void upFocusCycle(Component aComponent)
- Параметры:
-
aComponent- компонент, являющийся основой для операции перехода фокуса
downFocusCycle
public abstract void downFocusCycle(Container aContainer)
- Parameters:
-
aContainer- контейнер, являющийся основой для операции обхода фокуса
focusNextComponent
public final void focusNextComponent()
focusPreviousComponent
public final void focusPreviousComponent()
upFocusCycle
public final void upFocusCycle()
downFocusCycle
public final void downFocusCycle()
© 1993, 2021, 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/17/docs/api/java.desktop/java/awt/KeyboardFocusManager.html