Класс KeyboardFocusManager
- java.lang.Object
-
- java.awt.KeyboardFocusManager
- Все реализованные интерфейсы:
-
KeyEventDispatcher,KeyEventPostProcessor
- Непосредственные известные подклассы:
DefaultKeyboardFocusManager
public abstract class KeyboardFocusManager extends Object implements KeyEventDispatcher, KeyEventPostProcessor
Класс KeyboardFocusManager отвечает за управление активными и фокусированными окнами и текущим владельцем фокуса. Владелец фокуса определяется как компонент в приложении, который обычно получает все события KeyEvents, генерируемые пользователем. Фокусированное окно — это окно, которое содержит владелец фокуса. Только фрейм или диалоговое окно может быть активным окном. Системы окон могут обозначать активное окно или его дочерние элементы специальными элементами оформления, такими как выделенная строка заголовка. Активное окно всегда является либо фокусированным окном, либо первым фреймом или диалоговым окном, являющимся владельцем фокусированного окна.
Класс KeyboardFocusManager является централизованным местом для запроса кода клиента о владельце фокуса и инициирования изменений фокуса, а также диспетчером событий для всех FocusEvents, WindowEvents, связанных с фокусом, и KeyEvents.
Некоторые браузеры разделяют апплеты в различных кодовых базах на отдельные контексты и устанавливают барьеры между этими контекстами. В такой ситуации на каждый контекст будет приходиться один KeyboardFocusManager. Другие браузеры помещают все апплеты в один контекст, что подразумевает существование только одного глобального KeyboardFocusManager для всех апплетов. Это поведение зависит от реализации. Обратитесь к документации вашего браузера для получения дополнительной информации. Однако независимо от количества контекстов не может быть более одного владельца фокуса, фокусированного окна или активного окна на один ClassLoader.
Дополнительную информацию см. в Как использовать подсистему фокуса, разделе учебного пособия Java, и в Спецификации фокуса.
- С:
- 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(VetoableChangeListener listener) | Добавляет слушателя VetoableChangeListener в список слушателей. |
void | addVetoableChangeListener(String propertyName,
VetoableChangeListener listener) | Добавляет слушателя VetoableChangeListener в список слушателей для определённого свойства. |
void | clearFocusOwner() | Очищает владельца фокуса как на уровне Java, так и на уровне нативного кода, если владелец фокуса существует и находится в том же контексте, что и вызывающая нить; в противном случае метод возвращается бездействующим. |
void | clearGlobalFocusOwner() | Очищает глобального владельца фокуса как на уровне Java, так и на уровне нативного кода. |
protected abstract void | dequeueKeyEvents(long after,
Component untilFocused) | Вызывается AWT для уведомления KeyboardFocusManager о том, что он должен отменить отложенную обработку событий KeyEvent. |
protected abstract void | discardKeyEvents(Component comp) | Вызывается AWT для уведомления KeyboardFocusManager о том, что он должен отменить отложенную обработку событий KeyEvent. |
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 о том, что он должен отложить обработку событий KeyEvent до тех пор, пока указанный компонент не станет владельцем фокуса. |
protected void | firePropertyChange(String propertyName,
Object oldValue,
Object newValue) | Вызывает событие PropertyChangeEvent в ответ на изменение связанного свойства. |
protected void | fireVetoableChange(String propertyName,
Object oldValue,
Object newValue) | Вызывает событие PropertyChangeEvent в ответ на изменение ветируемого свойства. |
void | focusNextComponent() | Фокусирует компонент после текущего владельца фокуса. |
abstract void | focusNextComponent(Component aComponent) | Фокусирует компонент после aComponent, как правило, на основе FocusTraversalPolicy. |
void | focusPreviousComponent() | Фокусирует компонент перед текущим владельцем фокуса. |
abstract void | focusPreviousComponent(Component aComponent) | Фокусирует компонент перед 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 или любого установленного KeyEventDispatcher повторную обработку события. |
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(VetoableChangeListener listener) | Удаляет слушателя VetoableChangeListener из списка слушателей. |
void | removeVetoableChangeListener(String propertyName,
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
Идентификатор клавиш для цикла обхода фокуса вниз.
Конструкторы
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)
Установить глобально активное окно
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()
Получить активное окно
public Window getActiveWindow()
Возвращает активное окно, если оно находится в том же контексте, что и вызывающая нить. Активным окном может быть только окно типа Frame или Dialog. Системное окно может обозначать активное окно или его дочерние элементы специальными декорациями, такими как выделенная строка заголовка. Активное окно всегда является либо активным окном, либо первой формой или диалоговым окном, являющимся владельцем активного окна.
- Возвращает:
- активное окно или null, если активное окно не является частью контекста вызывающей нити
- См. также:
-
getGlobalActiveWindow(),setGlobalActiveWindow(java.awt.Window)
Получить глобально активное окно
protected Window getGlobalActiveWindow()
throws SecurityException Возвращает активное окно, даже если вызывающая нить находится в другом контексте, чем активное окно. Активным окном может быть только окно типа Frame или Dialog. Системное окно может обозначать активное окно или его дочерние элементы специальными декорациями, такими как выделенная строка заголовка. Активное окно всегда является либо активным окном, либо первой формой или диалоговым окном, являющимся владельцем активного окна.
- Возвращает:
- активное окно
- Выбрасывает:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
-
getActiveWindow(),setGlobalActiveWindow(java.awt.Window)
Установить глобально активное окно
protected void setGlobalActiveWindow(Window activeWindow)
throws SecurityException Устанавливает активное окно. Активным окном может быть только окно типа Frame или Dialog. Системное окно может обозначать активное окно или его дочерние элементы специальными декорациями, такими как выделенная строка заголовка. Активное окно всегда является либо активным окном, либо первой формой или диалоговым окном, являющимся владельцем активного окна.
Этот метод фактически не изменяет активное окно в контексте системного окна. Он просто сохраняет значение, которое будет возвращено методом getActiveWindow(). Используйте Component.requestFocus() или Component.requestFocusInWindow() для изменения активного окна, с учётом ограничений платформы.
- Параметры:
-
activeWindow- активное окно - Выбрасывает:
-
SecurityException- если этот KeyboardFocusManager не является текущим KeyboardFocusManager для контекста вызывающей нити и если вызывающая нить не имеет разрешения "replaceKeyboardFocusManager" - См. также:
-
getActiveWindow(),getGlobalActiveWindow(),Component.requestFocus(),Component.requestFocusInWindow()
Получить политику прохода фокуса по умолчанию
public FocusTraversalPolicy getDefaultFocusTraversalPolicy()
Возвращает политику прохода фокуса по умолчанию. При создании верхнеуровневых компонентов это значение используется для инициализации собственной политики прохода фокуса явным вызовом Container.setFocusTraversalPolicy.
- Возвращает:
- политика прохода фокуса по умолчанию. null никогда не возвращается.
- См. также:
-
setDefaultFocusTraversalPolicy(java.awt.FocusTraversalPolicy),Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),Container.getFocusTraversalPolicy()
Установить политику прохода фокуса по умолчанию
public void setDefaultFocusTraversalPolicy(FocusTraversalPolicy defaultPolicy)
Устанавливает политику прохода фокуса по умолчанию. При создании верхнеуровневых компонентов это значение используется для инициализации собственной политики прохода фокуса явным вызовом Container.setFocusTraversalPolicy. Примечание: этот вызов не влияет на уже созданные компоненты, так как их политика инициализирована. Только новые компоненты будут использовать эту политику в качестве политики по умолчанию.
- Параметры:
-
defaultPolicy- новая политика прохода фокуса по умолчанию - Выбрасывает:
-
IllegalArgumentException- если defaultPolicy равно null - См. также:
-
getDefaultFocusTraversalPolicy(),Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),Container.getFocusTraversalPolicy()
Установить клавиши прохода фокуса по умолчанию
public void setDefaultFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes) Устанавливает клавиши прохода фокуса по умолчанию для заданной операции прохода. Эта клавиша прохода Set будет действовать для всех Window без явно определённых подобных 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, или если keystrokesnull, или если keystrokes содержитnull, или если какая-либо клавиша соответствует событиюKEY_TYPED, или если какая-либо клавиша уже отображена для другой операции прохода фокуса. - См. также:
-
getDefaultFocusTraversalKeys(int),Component.setFocusTraversalKeys(int, java.util.Set<? extends java.awt.AWTKeyStroke>),Component.getFocusTraversalKeys(int)
Получить клавиши прохода фокуса по умолчанию
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для указанной операции; множествоSetбудет неизменяемым и может быть пустым;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()
Возвращает текущий корень цикла фокуса, если текущий корень цикла фокуса находится в том же контексте, что и вызывающая нить. Если владелец фокуса сам является корнем цикла фокуса, то может быть неоднозначно, какие компоненты представляют собой следующие и предыдущие компоненты для фокусировки при обычном переходе фокуса. В этом случае текущий корень цикла фокуса используется для различения возможных вариантов.
Этот метод предназначен для использования только менеджерами фокуса клавиатуры и реализациями фокуса. Он не предназначен для общего использования клиентами.
- Возвращает:
- текущий корень цикла фокуса или 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, и текущий корень цикла фокуса не будет изменён.
Этот метод предназначен для использования только менеджерами фокуса клавиатуры и реализациями фокуса. Он не предназначен для общего использования клиентами.
- Параметры:
-
newFocusCycleRoot- новый корень цикла фокуса - Выбрасывает:
-
SecurityException- если у вызывающей нити нет разрешения "replaceKeyboardFocusManager" - См. также:
-
getCurrentFocusCycleRoot(),getGlobalCurrentFocusCycleRoot()
addPropertyChangeListener
public void addPropertyChangeListener(PropertyChangeListener listener)
Добавляет PropertyChangeListener в список слушателей. Слушатель регистрируется для всех связанных свойств этого класса, включая следующие:
- является ли KeyboardFocusManager в настоящее время управляет фокусом для этого приложения или апплета в контексте браузера ("managingFocus")
- владелец фокуса ("focusOwner")
- постоянный владелец фокуса ("permanentFocusOwner")
- отображаемое окно ("focusedWindow")
- активное окно ("activeWindow")
- политика перехода фокуса по умолчанию ("defaultFocusTraversalPolicy")
- множество по умолчанию FORWARD_TRAVERSAL_KEYS ("forwardDefaultFocusTraversalKeys")
- множество по умолчанию BACKWARD_TRAVERSAL_KEYS ("backwardDefaultFocusTraversalKeys")
- множество по умолчанию UP_CYCLE_TRAVERSAL_KEYS ("upCycleDefaultFocusTraversalKeys")
- множество по умолчанию DOWN_CYCLE_TRAVERSAL_KEYS ("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")
- множество по умолчанию FORWARD_TRAVERSAL_KEYS ("forwardDefaultFocusTraversalKeys")
- множество по умолчанию BACKWARD_TRAVERSAL_KEYS ("backwardDefaultFocusTraversalKeys")
- множество по умолчанию UP_CYCLE_TRAVERSAL_KEYS ("upCycleDefaultFocusTraversalKeys")
- множество по умолчанию DOWN_CYCLE_TRAVERSAL_KEYS ("downCycleDefaultFocusTraversalKeys")
- текущий корень цикла фокуса ("currentFocusCycleRoot")
- Параметры:
-
propertyName- одно из названий свойств, перечисленных выше -
listener- добавляемый PropertyChangeListener - См. также:
-
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, исключение не выбрасывается, и никаких действий не выполняется.
- Параметры:
-
propertyName- допустимое имя свойства -
listener- удаляемый PropertyChangeListener - См. также:
-
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener),getPropertyChangeListeners(java.lang.String),removePropertyChangeListener(java.beans.PropertyChangeListener)
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Возвращает массив всех слушателей изменений свойств, связанных с указанным свойством.
- Параметры:
-
propertyName- имя свойства - Возвращает:
- все слушатели изменений свойств, связанные с указанным свойством, или пустой массив, если такие слушатели не добавлены.
- С:
- 1.4
- См. также:
-
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 одинаковы.
- Параметры:
-
propertyName- имя изменившегося свойства -
oldValue- предыдущее значение свойства -
newValue- новое значение свойства
addVetoableChangeListener
public void addVetoableChangeListener(VetoableChangeListener listener)
Добавляет обработчик изменения свойств VetoableChangeListener в список слушателей. Слушатель регистрируется для всех свойств, изменяемых по согласованию (vetoable properties), этого класса, включая следующие:
- владелец фокуса ("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, зарегистрированных для всех свойств, изменяемых по согласованию (vetoable properties), этого класса.
Если 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)
Возвращает массив всех обработчиков изменения свойств, связанных с заданным свойством.
- Parameters:
-
propertyName- имя свойства - Returns:
- все обработчики изменения свойств, связанные с заданным свойством, или пустой массив, если такие обработчики не добавлены.
- 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 в ответ на изменение свойства, изменяемого по согласованию (vetoable property). Событие будет передано всем зарегистрированным обработчикам VetoableChangeListeners. Если обработчик VetoableChangeListener бросает исключение PropertyVetoException, новое событие запускается, возвращая все обработчики VetoableChangeListeners к старому значению, и исключение затем перебрасывается. Событие не будет передано, если oldValue и newValue совпадают.
- Parameters:
-
propertyName- имя свойства, которое изменилось -
oldValue- предыдущее значение свойства -
newValue- новое значение свойства - Throws:
-
PropertyVetoException- если обработчикVetoableChangeListenerбросил исключениеPropertyVetoException
addKeyEventDispatcher
public void addKeyEventDispatcher(KeyEventDispatcher dispatcher)
Добавляет KeyEventDispatcher в цепочку диспетчеров этого KeyboardFocusManager. Этот KeyboardFocusManager запросит каждый KeyEventDispatcher обработать события KeyEvent, сгенерированные пользователем, прежде чем окончательно обработать само событие KeyEvent. KeyEventDispatchers будут уведомлены в том порядке, в котором они были добавлены. Уведомления прекратятся, как только один KeyEventDispatcher вернёт значение true из своего метода dispatchKeyEvent. Количество добавляемых KeyEventDispatchers не ограничено, как и количество раз, когда может быть добавлен экземпляр конкретного KeyEventDispatcher.
Если указан null dispatcher, никаких действий не выполняется и исключение не генерируется.
В многопоточных приложениях, KeyEventDispatcher ведет себя так же, как и другие слушатели AWT. См. Проблемы многопоточности AWT для получения дополнительной информации.
- Parameters:
-
dispatcher- KeyEventDispatcher для добавления в цепочку диспетчеров - See Also:
removeKeyEventDispatcher(java.awt.KeyEventDispatcher)
removeKeyEventDispatcher
public void removeKeyEventDispatcher(KeyEventDispatcher dispatcher)
Удаляет KeyEventDispatcher, ранее добавленный в цепочку диспетчеров этого KeyboardFocusManager. Сам KeyboardFocusManager не может быть удалён, если не был явно перерегистрирован с помощью вызова addKeyEventDispatcher.
Если указан null dispatcher, если указанный dispatcher отсутствует в цепочке диспетчеров или если KeyboardFocusManager указан без явной перерегистрации, никаких действий не выполняется и исключение не генерируется.
В многопоточных приложениях, KeyEventDispatcher ведет себя так же, как и другие слушатели AWT. См. Проблемы многопоточности AWT для получения дополнительной информации.
- Parameters:
-
dispatcher- KeyEventDispatcher для удаления из цепочки диспетчеров - See Also:
addKeyEventDispatcher(java.awt.KeyEventDispatcher)
getKeyEventDispatchers
protected List<KeyEventDispatcher> getKeyEventDispatchers()
Возвращает цепочку KeyEventDispatcher этого KeyboardFocusManager в виде списка. Список не будет включать этот KeyboardFocusManager, если он не был явно перерегистрирован с помощью вызова addKeyEventDispatcher. Если другие KeyEventDispatchers не зарегистрированы, реализации могут вернуть null или список длиной 0. Код клиента не должен предполагать какой-либо конкретный вариант поведения, так же, как и то, что установленное поведение не изменится.
- Returns:
- возможно null или пустой список KeyEventDispatchers
- See Also:
-
addKeyEventDispatcher(java.awt.KeyEventDispatcher),removeKeyEventDispatcher(java.awt.KeyEventDispatcher)
addKeyEventPostProcessor
public void addKeyEventPostProcessor(KeyEventPostProcessor processor)
Добавляет KeyEventPostProcessor в цепочку постпроцессоров этого KeyboardFocusManager. После того, как событие KeyEvent было обработано и обработано его целевым объектом, KeyboardFocusManager запросит каждый KeyEventPostProcessor выполнить необходимые действия постобработки в рамках окончательного разрешения KeyEvent. KeyEventPostProcessors будут уведомлены в порядке их добавления; текущий KeyboardFocusManager будет уведомлён последним. Уведомления прекратятся, как только один KeyEventPostProcessor вернёт значение true из своего метода postProcessKeyEvent. Количество добавляемых KeyEventPostProcessors не ограничено, как и количество раз, когда может быть добавлен экземпляр конкретного KeyEventPostProcessor.
Если указан null post-processor, никаких действий не выполняется и исключение не генерируется.
В многопоточных приложениях, KeyEventPostProcessor ведет себя так же, как и другие слушатели AWT. См. Проблемы многопоточности AWT для получения дополнительной информации.
- Parameters:
-
processor- KeyEventPostProcessor для добавления в цепочку постпроцессоров - See Also:
removeKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
removeKeyEventPostProcessor
public void removeKeyEventPostProcessor(KeyEventPostProcessor processor)
Удаляет ранее добавленный обработчик KeyEventPostProcessor из цепочки обработчиков этого KeyboardFocusManager. Сам KeyboardFocusManager не может быть полностью удалён из цепочки. Можно удалить только дополнительные ссылки, добавленные через addKeyEventPostProcessor.
Если указан null post-processor, если указанный post-processor не находится в цепочке обработчиков или если этот KeyboardFocusManager указан без явного добавления, никаких действий не выполняется и исключение не выбрасывается.
В многопоточной приложении, KeyEventPostProcessor ведет себя так же, как и другие слушатели AWT. Подробнее см. Проблемы потоков AWT.
- Параметры:
-
processor- KeyEventPostProcessor, который необходимо удалить из цепочки обработчиков - См. также:
addKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
getKeyEventPostProcessors
protected List<KeyEventPostProcessor> getKeyEventPostProcessors()
Возвращает цепочку KeyEventPostProcessor этого KeyboardFocusManager в виде списка. Список не будет содержать этот KeyboardFocusManager, если он не был явно добавлен с помощью вызова addKeyEventPostProcessor. Если KeyEventPostProcessors не зарегистрированы, реализации могут вернуть null или список длиной 0. Код клиента не должен предполагать один вариант поведения по сравнению с другим, а также не должен предполагать, что поведение, однажды установленное, не изменится.
- Возвращает:
- возможно null или пустой список KeyEventPostProcessors
- См. также:
-
addKeyEventPostProcessor(java.awt.KeyEventPostProcessor),removeKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
dispatchEvent
public abstract boolean dispatchEvent(AWTEvent e)
Этот метод вызывается диспетчером событий AWT, запрашивая, чтобы текущий KeyboardFocusManager от своего имени обработал указанное событие. Ожидается, что все KeyboardFocusManagers будут обрабатывать все FocusEvents, все WindowEvents, относящиеся к фокусу, и все KeyEvents. Эти события должны обрабатываться на основе понятия 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. По умолчанию этот метод обрабатывает любые необработанные KeyEvents, сопоставляемые с 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 о том, что он должен отложить обработку KeyEvents до тех пор, пока указанный Component не станет владельцем фокуса. Если код клиента запрашивает изменение фокуса, и AWT определяет, что этот запрос может быть выполнен системой отображения, то AWT вызовет этот метод. Ответственность KeyboardFocusManager состоит в том, чтобы отложить обработку KeyEvents со временем, превышающим указанную метку времени, до тех пор, пока указанный Component не получит событие 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/KeyboardFocusManager.html