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