Класс KeyboardFocusManager
- Все реализованные интерфейсы:
-
KeyEventDispatcher,KeyEventPostProcessor
- Прямые известные подклассы:
DefaultKeyboardFocusManager
public abstract class KeyboardFocusManager extends Object implements KeyEventDispatcher, KeyEventPostProcessor
Класс KeyboardFocusManager является централизованным местом для запросов клиентского кода о владельце фокуса и инициирования изменений фокуса, а также диспетчером событий для всех FocusEvents, WindowEvents, связанных с фокусом, и KeyEvents.
Некоторые браузеры разделяют апплеты в разных кодовых базах на отдельные контексты и устанавливают барьеры между этими контекстами. В такой ситуации будет по одному KeyboardFocusManager на контекст. Другие браузеры размещают все апплеты в одном контексте, предполагая, что будет только один глобальный KeyboardFocusManager для всех апплетов. Это поведение зависит от реализации. Обратитесь к документации вашего браузера для получения дополнительной информации. Однако независимо от количества контекстов, никогда не может быть более одного владельца фокуса, фокусированного окна или активного окна на один ClassLoader.
Дополнительную информацию можно найти в Разделе «Использование подсистемы фокуса» в Руководстве по Java и в Спецификации фокуса.
- С:
- 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 и нативном уровнях, если владелец фокуса существует и находится в том же контексте, что и вызывающая нить; в противном случае метод возвращается без действия. |
void |
clearGlobalFocusOwner() |
Очищает глобального владельца фокуса на Java и нативном уровнях. |
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 |
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 |
getKeyEventDispatchers() |
Возвращает цепочку KeyEventDispatcher этого KeyboardFocusManager в виде списка. |
protected List |
getKeyEventPostProcessors() |
Возвращает цепочку KeyEventPostProcessor этого KeyboardFocusManager в виде списка. |
Component |
getPermanentFocusOwner() |
Возвращает постоянного владельца фокуса, если постоянный владелец фокуса находится в том же контексте, что и вызывающая нить. |
PropertyChangeListener[] |
getPropertyChangeListeners() |
Возвращает массив всех слушателей изменения свойств, зарегистрированных в этом KeyboardFocusManager. |
PropertyChangeListener[] |
getPropertyChangeListeners |
Возвращает массив всех PropertyChangeListener для указанного свойства. |
VetoableChangeListener[] |
getVetoableChangeListeners() |
Возвращает массив всех слушателей изменения вето-свойств, зарегистрированных в этом KeyboardFocusManager. |
VetoableChangeListener[] |
getVetoableChangeListeners |
Возвращает массив всех VetoableChangeListener для указанного свойства. |
abstract boolean |
postProcessKeyEvent |
Этот метод будет вызван dispatchKeyEvent. |
abstract void |
processKeyEvent |
Инициализирует операцию обхода фокуса, если и только если KeyEvent представляет собой клавишу обхода фокуса для указанного focusedComponent. |
final void |
redispatchEvent |
Обрабатывает AWTEvent таким образом, что диспетчер AWT-событий не будет рекурсивно запрашивать KeyboardFocusManager или любые установленные KeyEventDispatchers, чтобы ещё раз обработать событие. |
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
Этот метод на самом деле не устанавливает фокус на указанный Component. Он просто сохраняет значение, которое впоследствии будет возвращено getFocusOwner(). Используйте Component.requestFocus() или Component.requestFocusInWindow() для изменения владельца фокуса, с учетом ограничений платформы.
- Параметры:
-
focusOwner- владелец фокуса - Исключения:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающего потока и если вызывающий поток не имеет разрешения "replaceKeyboardFocusManager" - См. также:
clearFocusOwner
public void clearFocusOwner()
Компоненту-владельцу фокуса будет отправлено постоянное событие FOCUS_LOST. После завершения этой операции native система оконной системы удалит все сгенерированные пользователем KeyEvents, пока пользователь не выберет новый Component для получения фокуса или Component не получит фокус явно с помощью вызова requestFocus(). Эта операция не изменяет сосредоточенные или активные Windows.
- С:
- 1.8
- См. также:
clearGlobalFocusOwner
public void clearGlobalFocusOwner() throws SecurityException
requestFocus(). Эта операция не изменяет сосредоточенные или активные Windows. Если установлен SecurityManager, вызывающий поток должен иметь разрешение "replaceKeyboardFocusManager" AWTPermission. Если этого разрешения нет, этот метод выбросит SecurityException, и текущий владелец фокуса не будет очищен.
Этот метод предназначен для использования только KeyboardFocusManager, установленным как текущий KeyboardFocusManager для контекста вызывающего потока. Он не предназначен для общего использования клиентом.
- Исключения:
-
SecurityException- если вызывающий поток не имеет разрешения "replaceKeyboardFocusManager" - См. также:
getPermanentFocusOwner
public Component getPermanentFocusOwner()
- Возвращает:
- владелец постоянного фокуса или null, если владелец постоянного фокуса не является членом контекста вызывающей нити
- См. также:
getGlobalPermanentFocusOwner
protected Component getGlobalPermanentFocusOwner() throws SecurityException
- Возвращает:
- владелец постоянного фокуса
- Выбрасывает:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
setGlobalPermanentFocusOwner
protected void setGlobalPermanentFocusOwner(Component permanentFocusOwner) throws SecurityException
Этот метод фактически не устанавливает фокус на указанный компонент. Он просто сохраняет значение, которое впоследствии будет возвращено getPermanentFocusOwner(). Используйте Component.requestFocus() или Component.requestFocusInWindow() для изменения владельца фокуса, с учетом ограничений платформы.
- Параметры:
-
permanentFocusOwner- владелец постоянного фокуса - Выбрасывает:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
getFocusedWindow
public Window getFocusedWindow()
- Возвращает:
- окно с фокусом или null, если окно с фокусом не является членом контекста вызывающей нити
- См. также:
getGlobalFocusedWindow
protected Window getGlobalFocusedWindow() throws SecurityException
- Возвращает:
- окно с фокусом
- Выбрасывает:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
setGlobalFocusedWindow
protected void setGlobalFocusedWindow(Window focusedWindow) throws SecurityException
Этот метод фактически не изменяет окно с фокусом с точки зрения системного окна. Он просто сохраняет значение, которое впоследствии будет возвращено getFocusedWindow(). Используйте Component.requestFocus() или Component.requestFocusInWindow() для изменения окна с фокусом, с учетом ограничений платформы.
- Параметры:
-
focusedWindow- окно с фокусом - Выбрасывает:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
getActiveWindow
public Window getActiveWindow()
- Возвращает:
- активное окно или null, если активное окно не является членом контекста вызывающей нити
- См. также:
getGlobalActiveWindow
protected Window getGlobalActiveWindow() throws SecurityException
- Возвращает:
- активное окно
- Выбрасывает:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
setGlobalActiveWindow
protected void setGlobalActiveWindow(Window activeWindow) throws SecurityException
Этот метод фактически не изменяет активное окно с точки зрения системного окна. Он просто сохраняет значение, которое впоследствии будет возвращено getActiveWindow(). Используйте Component.requestFocus() или Component.requestFocusInWindow() для изменения активного окна, с учетом ограничений платформы.
- Параметры:
-
activeWindow- активное окно - Выбрасывает:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
getDefaultFocusTraversalPolicy
public FocusTraversalPolicy getDefaultFocusTraversalPolicy()
- Возвращает:
- политику FocusTraversalPolicy по умолчанию. null никогда не возвращается.
- См. также:
Установить политику обхода фокуса по умолчанию
public void setDefaultFocusTraversalPolicy(FocusTraversalPolicy defaultPolicy)
- Параметры:
-
defaultPolicy- новая политика обхода фокуса по умолчанию - Исключения:
-
IllegalArgumentException- если defaultPolicy равно null - См. также:
Установить клавиши обхода фокуса по умолчанию
public void setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
Set будет действовать для всех Window без явного определения собственной Set. Эта Set также будет унаследована рекурсивно любыми дочерними Component этих Windows, которые не имеют явным образом определенной Set. Значения по умолчанию для клавиш обхода фокуса по умолчанию зависят от реализации. 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 равноnull, или если 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 - Возвращает:
- множество
SetAWTKeyStrokeдля заданной операции; множество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()
Этот метод предназначен для использования только менеджерами клавиатурного фокуса и реализациями фокуса. Он не предназначен для общего использования клиентом.
- Возвращает:
- текущий корень цикла фокуса или null, если текущий корень цикла фокуса не является членом контекста вызывающей нити
- См. также:
Получить глобальный текущий корень цикла фокуса
protected Container getGlobalCurrentFocusCycleRoot() throws SecurityException
- Возвращает:
- текущий корень цикла фокуса или null, если текущий корень цикла фокуса не является членом контекста вызывающей нити
- Исключения:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
Установить глобальный текущий корень цикла фокуса
public void setGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot) throws SecurityException
Если установлен SecurityManager, вызывающая нить должна иметь разрешение "replaceKeyboardFocusManager" AWTPermission. Если это разрешение не предоставлено, этот метод выбросит SecurityException, и текущий корень цикла фокуса не изменится.
Этот метод предназначен для использования только менеджерами клавиатурного фокуса и реализациями фокуса. Он не предназначен для общего использования клиентом.
- Параметры:
-
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)
Если listener равен null, исключение не выбрасывается и никаких действий не выполняется.
- Parameters:
-
propertyName- допустимое имя свойства -
listener- удаляемый VetoableChangeListener - See Also:
getVetoableChangeListeners
public VetoableChangeListener[] getVetoableChangeListeners(String propertyName)
VetoableChangeListeners, связанных с заданным свойством.- Parameters:
-
propertyName- имя свойства - Returns:
- все
VetoableChangeListeners, связанные с заданным свойством, или пустой массив, если такие слушатели не добавлены. - 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. Код клиента не должен предполагать какой-либо конкретный вариант поведения, а также не должен предполагать, что поведение, однажды установленное, не изменится.- Возвращает:
- возможно null или пустой список 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 и клиентские обработчики KeyEvent должны вызывать 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 до любого ожидающего KeyEvent - См. также:
dequeueKeyEvents
protected abstract void dequeueKeyEvents(long after, Component untilFocused)
enqueueKeyEvents с той же меткой времени и компонентом, должны быть освобождены для обычной обработки текущим владельцем фокуса. Если заданная метка времени меньше нуля, запрос на постановку в очередь для данного компонента с наиболее ранней меткой времени (если таковая имеется) должен быть отменён.- Параметры:
-
after- метка времени, заданная в вызовеenqueueKeyEvents, или любое значение < 0 -
untilFocused- компонент, указанный в вызовеenqueueKeyEvents - См. также:
discardKeyEvents
protected abstract void discardKeyEvents(Component comp)
enqueueKeyEvents с тем же компонентом, должны быть удалены.- Параметры:
-
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, 2023, 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/21/docs/api/java.desktop/java/awt/KeyboardFocusManager.html