Spec-Zone.ru › OpenJDK 25

Класс 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 служит как централизованным местом, где клиентский код может получить сведения о владельце фокуса и инициировать изменения фокуса, так и диспетчером событий для всех FocusEvents, WindowEvents, связанных с фокусом, и KeyEvents.

Некоторые браузеры разделяют апплеты, размещённые в разных базах кода, по отдельным контекстам и устанавливают между этими контекстами барьеры. В таком случае для каждого контекста будет существовать отдельный KeyboardFocusManager. Другие браузеры помещают все апплеты в один контекст, поэтому для всех апплетов будет использоваться единственный глобальный KeyboardFocusManager. Такое поведение зависит от реализации. Дополнительные сведения см. в документации браузера. Однако независимо от количества контекстов для каждого ClassLoader может существовать не более одного владельца фокуса, сфокусированного окна или активного окна.

Дополнительные сведения см. в разделе Как использовать подсистему фокуса из Учебника по Java и в спецификации фокуса.

Начиная с версии:
1.4
См. также:
  • Window
  • Frame
  • Dialog
  • FocusEvent
  • WindowEvent
  • KeyEvent

Краткое описание полей

Модификатор и тип Поле Описание
static final int BACKWARD_TRAVERSAL_KEYS
Идентификатор клавиш обхода фокуса в обратном направлении.
static final int DOWN_CYCLE_TRAVERSAL_KEYS
Идентификатор клавиш перехода вниз по циклу обхода фокуса.
static final int FORWARD_TRAVERSAL_KEYS
Идентификатор клавиш обхода фокуса в прямом направлении.
static final int UP_CYCLE_TRAVERSAL_KEYS
Идентификатор клавиш перехода вверх по циклу обхода фокуса.

Краткое описание конструкторов

Конструктор Описание
KeyboardFocusManager()
Инициализирует KeyboardFocusManager.

Краткое описание методов

Модификатор и тип Метод Описание
void addKeyEventDispatcher(KeyEventDispatcher dispatcher)
Добавляет KeyEventDispatcher в цепочку диспетчеризации этого 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 о необходимости отменить отложенную диспетчеризацию KeyEvents.
protected abstract void discardKeyEvents(Component comp)
Вызывается AWT, чтобы уведомить KeyboardFocusManager о необходимости отменить отложенную диспетчеризацию KeyEvents.
abstract boolean dispatchEvent(AWTEvent e)
Этот метод вызывается диспетчером событий AWT с просьбой к текущему KeyboardFocusManager выполнить диспетчеризацию указанного события от его имени.
abstract boolean dispatchKeyEvent(KeyEvent e)
Обычно этот метод вызывается dispatchEvent, если ни один другой KeyEventDispatcher в цепочке диспетчеризации не выполнил диспетчеризацию KeyEvent или если другие KeyEventDispatcher не зарегистрированы.
final void downFocusCycle()
Перемещает фокус вниз на один цикл обхода от текущего владельца фокуса, только если текущий владелец фокуса является Container, служащим корнем цикла обхода фокуса.
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 в ответ на изменение свойства, изменение которого можно отклонить.
final void focusNextComponent()
Передаёт фокус компоненту, следующему за текущим владельцем фокуса.
abstract void focusNextComponent(Component aComponent)
Передаёт фокус компоненту, следующему за aComponent, обычно согласно FocusTraversalPolicy.
final void focusPreviousComponent()
Передаёт фокус компоненту, предшествующему текущему владельцу фокуса.
abstract void focusPreviousComponent(Component aComponent)
Передаёт фокус компоненту, предшествующему aComponent, обычно согласно FocusTraversalPolicy.
Window getActiveWindow()
Возвращает активное окно, если оно находится в том же контексте, что и вызывающий поток.
Container getCurrentFocusCycleRoot()
Возвращает текущий корень цикла обхода фокуса, если он находится в том же контексте, что и вызывающий поток.
static KeyboardFocusManager getCurrentKeyboardFocusManager()
Возвращает текущий экземпляр KeyboardFocusManager для контекста вызывающего потока.
Set<AWTKeyStroke> getDefaultFocusTraversalKeys(int id)
Возвращает Set клавиш обхода фокуса по умолчанию для заданной операции обхода.
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 в виде List.
protected List<KeyEventPostProcessor> getKeyEventPostProcessors()
Возвращает цепочку KeyEventPostProcessor этого KeyboardFocusManager в виде List.
Component getPermanentFocusOwner()
Возвращает постоянного владельца фокуса, если он находится в том же контексте, что и вызывающий поток.
PropertyChangeListener[] getPropertyChangeListeners()
Возвращает массив всех слушателей изменений свойств, зарегистрированных в этом диспетчере фокуса клавиатуры.
PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Возвращает массив всех PropertyChangeListener, связанных с указанным свойством.
VetoableChangeListener[] getVetoableChangeListeners()
Возвращает массив всех слушателей изменений, которые могут отклоняться, зарегистрированных в этом диспетчере фокуса клавиатуры.
VetoableChangeListener[] getVetoableChangeListeners(String propertyName)
Возвращает массив всех VetoableChangeListener, связанных с указанным свойством.
abstract boolean postProcessKeyEvent(KeyEvent e)
Этот метод вызывается dispatchKeyEvent.
abstract void processKeyEvent(Component focusedComponent, KeyEvent e)
Этот метод инициирует обход фокуса тогда и только тогда, когда KeyEvent представляет собой клавишу обхода фокуса для указанного focusedComponent.
final 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)
Устанавливает постоянного владельца фокуса.
final void upFocusCycle()
Перемещает фокус вверх на один цикл обхода от текущего владельца фокуса.
abstract void upFocusCycle(Component aComponent)
Перемещает фокус вверх на один цикл обхода.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

FORWARD_TRAVERSAL_KEYS

public static final int FORWARD_TRAVERSAL_KEYS
Идентификатор клавиш обхода фокуса вперёд.
См. также:
  • setDefaultFocusTraversalKeys(int, Set)
  • getDefaultFocusTraversalKeys(int)
  • Component.setFocusTraversalKeys(int, Set)
  • Component.getFocusTraversalKeys(int)
  • Значения константных полей

BACKWARD_TRAVERSAL_KEYS

public static final int BACKWARD_TRAVERSAL_KEYS
Идентификатор клавиш обхода фокуса назад.
См. также:
  • setDefaultFocusTraversalKeys(int, Set)
  • getDefaultFocusTraversalKeys(int)
  • Component.setFocusTraversalKeys(int, Set)
  • Component.getFocusTraversalKeys(int)
  • Значения константных полей

UP_CYCLE_TRAVERSAL_KEYS

public static final int UP_CYCLE_TRAVERSAL_KEYS
Идентификатор клавиш перехода на один уровень вверх в цикле обхода фокуса.
См. также:
  • setDefaultFocusTraversalKeys(int, Set)
  • getDefaultFocusTraversalKeys(int)
  • Component.setFocusTraversalKeys(int, Set)
  • Component.getFocusTraversalKeys(int)
  • Значения константных полей

DOWN_CYCLE_TRAVERSAL_KEYS

public static final int DOWN_CYCLE_TRAVERSAL_KEYS
Идентификатор клавиш перехода на один уровень вниз в цикле обхода фокуса.
См. также:
  • setDefaultFocusTraversalKeys(int, Set)
  • getDefaultFocusTraversalKeys(int)
  • Component.setFocusTraversalKeys(int, Set)
  • Component.getFocusTraversalKeys(int)
  • Значения константных полей

Подробное описание конструкторов

KeyboardFocusManager

public KeyboardFocusManager()
Инициализирует KeyboardFocusManager.

Подробное описание методов

getCurrentKeyboardFocusManager

public static KeyboardFocusManager getCurrentKeyboardFocusManager()
Возвращает экземпляр KeyboardFocusManager, текущий для контекста вызывающего потока.
Возвращает:
KeyboardFocusManager контекста этого потока
См. также:
  • setCurrentKeyboardFocusManager(KeyboardFocusManager)

setCurrentKeyboardFocusManager

public static void setCurrentKeyboardFocusManager(KeyboardFocusManager newManager)
Задаёт экземпляр KeyboardFocusManager, текущий для контекста вызывающего потока. Если указано значение null, текущий KeyboardFocusManager заменяется новым экземпляром DefaultKeyboardFocusManager.
Параметры:
newManager — новый KeyboardFocusManager для контекста этого потока
См. также:
  • getCurrentKeyboardFocusManager()
  • DefaultKeyboardFocusManager

getFocusOwner

public Component getFocusOwner()
Возвращает владельца фокуса, если он находится в том же контексте, что и вызывающий поток. Владельцем фокуса считается Component приложения, который обычно получает все KeyEvent, генерируемые пользователем. KeyEvent, соответствующие клавишам обхода фокуса владельца фокуса, не будут переданы, если для этого владельца включён обход фокуса. Кроме того, KeyEventDispatcher может перенаправить или обработать KeyEvent до того, как они достигнут владельца фокуса.
Возвращает:
владельца фокуса или null, если владелец фокуса не принадлежит контексту вызывающего потока
См. также:
  • getGlobalFocusOwner()
  • setGlobalFocusOwner(Component)

getGlobalFocusOwner

protected Component getGlobalFocusOwner()
Возвращает владельца фокуса, даже если вызывающий поток находится в другом контексте. Владельцем фокуса считается Component приложения, который обычно получает все KeyEvent, генерируемые пользователем. KeyEvent, соответствующие клавишам обхода фокуса владельца фокуса, не будут переданы, если для этого владельца включён обход фокуса. Кроме того, KeyEventDispatcher может перенаправить или обработать KeyEvent до того, как они достигнут владельца фокуса.
Возвращает:
владельца фокуса
См. также:
  • getFocusOwner()
  • setGlobalFocusOwner(Component)

setGlobalFocusOwner

protected void setGlobalFocusOwner(Component focusOwner)
Задаёт владельца фокуса. Операция будет отменена, если Component не может получать фокус. Владельцем фокуса считается Component приложения, который обычно получает все KeyEvent, генерируемые пользователем. KeyEvent, соответствующие клавишам обхода фокуса владельца фокуса, не будут переданы, если для этого владельца включён обход фокуса. Кроме того, KeyEventDispatcher может перенаправить или обработать KeyEvent до того, как они достигнут владельца фокуса.

Этот метод фактически не переводит фокус на указанный Component. Он лишь сохраняет значение, которое впоследствии будет возвращено методом getFocusOwner(). Чтобы сменить владельца фокуса с учётом ограничений платформы, используйте Component.requestFocus() или Component.requestFocusInWindow().

Параметры:
focusOwner — владелец фокуса
См. также:
  • getFocusOwner()
  • getGlobalFocusOwner()
  • Component.requestFocus()
  • Component.requestFocusInWindow()
  • Component.isFocusable()

clearFocusOwner

public void clearFocusOwner()
Сбрасывает владельца фокуса на уровне Java и на нативном уровне, если владелец фокуса существует и находится в том же контексте, что и вызывающий поток; в противном случае метод завершается без каких-либо действий.

Компонент — владелец фокуса получит постоянное событие FOCUS_LOST. После завершения этой операции нативная оконная система будет отбрасывать все KeyEvent, сгенерированные пользователем, пока пользователь не выберет новый Component для получения фокуса или фокус не будет явно передан Component вызовом requestFocus(). Эта операция не изменяет окно, находящееся в фокусе или активное окно.

С версии:
1.8
См. также:
  • Component.requestFocus()
  • FocusEvent.FOCUS_LOST

clearGlobalFocusOwner

public void clearGlobalFocusOwner()
Сбрасывает глобального владельца фокуса на уровне Java и на нативном уровне. Если владелец фокуса существует, этот Component получит постоянное событие FOCUS_LOST. После завершения этой операции нативная оконная система будет отбрасывать все KeyEvent, сгенерированные пользователем, пока пользователь не выберет новый Component для получения фокуса или фокус не будет явно передан Component вызовом requestFocus(). Эта операция не изменяет окно, находящееся в фокусе или активное окно.

Этот метод предназначен исключительно для KeyboardFocusManager, заданного в качестве текущего KeyboardFocusManager для контекста вызывающего потока. Он не предназначен для общего использования клиентским кодом.

См. также:
  • clearFocusOwner()
  • Component.requestFocus()
  • FocusEvent.FOCUS_LOST

getPermanentFocusOwner

public Component getPermanentFocusOwner()
Возвращает постоянного владельца фокуса, если он находится в том же контексте, что и вызывающий поток. Постоянным владельцем фокуса считается последний Component приложения, получивший постоянное событие FOCUS_GAINED. Владелец фокуса и постоянный владелец фокуса совпадают, если только в данный момент не происходит временное изменение фокуса. В этом случае после завершения временного изменения постоянный владелец фокуса снова станет владельцем фокуса.
Возвращает:
постоянного владельца фокуса или null, если постоянный владелец фокуса не принадлежит контексту вызывающего потока
См. также:
  • getGlobalPermanentFocusOwner()
  • setGlobalPermanentFocusOwner(Component)

getGlobalPermanentFocusOwner

protected Component getGlobalPermanentFocusOwner()
Возвращает постоянного владельца фокуса, даже если вызывающий поток находится в другом контексте. Постоянным владельцем фокуса считается последний Component приложения, получивший постоянное событие FOCUS_GAINED. Владелец фокуса и постоянный владелец фокуса совпадают, если только в данный момент не происходит временное изменение фокуса. В этом случае после завершения временного изменения постоянный владелец фокуса снова станет владельцем фокуса.
Возвращает:
постоянного владельца фокуса
См. также:
  • getPermanentFocusOwner()
  • setGlobalPermanentFocusOwner(Component)

setGlobalPermanentFocusOwner

protected void setGlobalPermanentFocusOwner(Component permanentFocusOwner)
Задаёт постоянного владельца фокуса. Операция будет отменена, если Component не может получать фокус. Постоянным владельцем фокуса считается последний Component приложения, получивший постоянное событие FOCUS_GAINED. Владелец фокуса и постоянный владелец фокуса совпадают, если только в данный момент не происходит временное изменение фокуса. В этом случае после завершения временного изменения постоянный владелец фокуса снова станет владельцем фокуса.

Этот метод фактически не переводит фокус на указанный Component. Он лишь сохраняет значение, которое впоследствии будет возвращено методом getPermanentFocusOwner(). Чтобы сменить владельца фокуса с учётом ограничений платформы, используйте Component.requestFocus() или Component.requestFocusInWindow().

Параметры:
permanentFocusOwner — постоянный владелец фокуса
См. также:
  • getPermanentFocusOwner()
  • getGlobalPermanentFocusOwner()
  • Component.requestFocus()
  • Component.requestFocusInWindow()
  • Component.isFocusable()

getFocusedWindow

public Window getFocusedWindow()
Возвращает окно, находящееся в фокусе, если оно находится в том же контексте, что и вызывающий поток. Окно, находящееся в фокусе, — это окно, которое является владельцем фокуса или содержит его.
Возвращает:
окно, находящееся в фокусе, или null, если оно не принадлежит контексту вызывающего потока
См. также:
  • getGlobalFocusedWindow()
  • setGlobalFocusedWindow(Window)

getGlobalFocusedWindow

protected Window getGlobalFocusedWindow()
Возвращает окно, находящееся в фокусе, даже если вызывающий поток находится в другом контексте. Окно, находящееся в фокусе, — это окно, которое является владельцем фокуса или содержит его.
Возвращает:
окно, находящееся в фокусе
См. также:
  • getFocusedWindow()
  • setGlobalFocusedWindow(Window)

setGlobalFocusedWindow

protected void setGlobalFocusedWindow(Window focusedWindow)
Задаёт окно, находящееся в фокусе. Окно, находящееся в фокусе, — это окно, которое является владельцем фокуса или содержит его. Операция будет отменена, если указанное окно не может получать фокус.

С точки зрения нативной оконной системы этот метод фактически не изменяет окно, находящееся в фокусе. Он лишь сохраняет значение, которое впоследствии будет возвращено методом getFocusedWindow(). Чтобы изменить окно, находящееся в фокусе, с учётом ограничений платформы, используйте Component.requestFocus() или Component.requestFocusInWindow().

Параметры:
focusedWindow — окно, находящееся в фокусе
См. также:
  • getFocusedWindow()
  • getGlobalFocusedWindow()
  • Component.requestFocus()
  • Component.requestFocusInWindow()
  • Window.isFocusableWindow()

getActiveWindow

public Window getActiveWindow()
Возвращает активное окно, если оно находится в том же контексте, что и вызывающий поток. Активным окном может быть только Frame или Dialog. Нативная оконная система может обозначать активное окно или его дочерние окна с помощью специальных элементов оформления, например выделенной строки заголовка. Активным окном всегда является либо окно, находящееся в фокусе, либо первый Frame или Dialog, которому принадлежит окно, находящееся в фокусе.
Возвращает:
активное окно или null, если оно не принадлежит контексту вызывающего потока
См. также:
  • getGlobalActiveWindow()
  • setGlobalActiveWindow(Window)

getGlobalActiveWindow

protected Window getGlobalActiveWindow()
Возвращает активное окно, даже если вызывающий поток находится в другом контексте. Активным окном может быть только Frame или Dialog. Нативная оконная система может обозначать активное окно или его дочерние окна с помощью специальных элементов оформления, например выделенной строки заголовка. Активным окном всегда является либо окно, находящееся в фокусе, либо первый Frame или Dialog, которому принадлежит окно, находящееся в фокусе.
Возвращает:
активное окно
См. также:
  • getActiveWindow()
  • setGlobalActiveWindow(Window)

setGlobalActiveWindow

protected void setGlobalActiveWindow(Window activeWindow)
Задаёт активное окно. Активным окном может быть только Frame или Dialog. Нативная оконная система может обозначать активное окно или его дочерние окна с помощью специальных элементов оформления, например выделенной строки заголовка. Активным окном всегда является либо окно, находящееся в фокусе, либо первый Frame или Dialog, которому принадлежит окно, находящееся в фокусе.

С точки зрения нативной оконной системы этот метод фактически не изменяет активное окно. Он лишь сохраняет значение, которое впоследствии будет возвращено методом getActiveWindow(). Чтобы изменить активное окно с учётом ограничений платформы, используйте Component.requestFocus() или Component.requestFocusInWindow().

Параметры:
activeWindow — активное окно
См. также:
  • getActiveWindow()
  • getGlobalActiveWindow()
  • Component.requestFocus()
  • Component.requestFocusInWindow()

getDefaultFocusTraversalPolicy

public FocusTraversalPolicy getDefaultFocusTraversalPolicy()
Возвращает FocusTraversalPolicy по умолчанию. Компоненты верхнего уровня при создании используют это значение для инициализации собственной политики обхода фокуса посредством явного вызова Container.setFocusTraversalPolicy.
Возвращает:
FocusTraversalPolicy по умолчанию. Значение null никогда не возвращается.
См. также:
  • setDefaultFocusTraversalPolicy(FocusTraversalPolicy)
  • Container.setFocusTraversalPolicy(FocusTraversalPolicy)
  • Container.getFocusTraversalPolicy()

setDefaultFocusTraversalPolicy

public void setDefaultFocusTraversalPolicy(FocusTraversalPolicy defaultPolicy)
Задаёт FocusTraversalPolicy по умолчанию. Компоненты верхнего уровня при создании используют это значение для инициализации собственной политики обхода фокуса посредством явного вызова Container.setFocusTraversalPolicy. Примечание: этот вызов не влияет на уже созданные компоненты, поскольку их политика уже инициализирована. Только новые компоненты будут использовать эту политику в качестве политики по умолчанию.
Параметры:
defaultPolicy — новая политика FocusTraversalPolicy по умолчанию
Вызывает исключение:
IllegalArgumentException — если defaultPolicy имеет значение null
См. также:
  • getDefaultFocusTraversalPolicy()
  • Container.setFocusTraversalPolicy(FocusTraversalPolicy)
  • Container.getFocusTraversalPolicy()

setDefaultFocusTraversalKeys

public void setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
Задаёт клавиши обхода фокуса по умолчанию для указанной операции обхода. Этот набор клавиш обхода фокуса Set будет применяться ко всем Window, для которых явно не задан собственный Set. Этот Set также будет рекурсивно наследоваться любыми дочерними Component этих Windows, для которых явно не задан собственный Set.

Значения клавиш обхода фокуса по умолчанию зависят от реализации. Sun рекомендует всем реализациям для конкретной нативной платформы использовать одинаковые значения по умолчанию. Рекомендации для Windows и Unix приведены ниже. Эти рекомендации используются в реализациях Sun AWT.

Рекомендуемые значения клавиш обхода фокуса по умолчанию
Идентификатор Назначение Значение по умолчанию
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS Обычный обход фокуса вперёд с помощью клавиатуры TAB в KEY_PRESSED, CTRL-TAB в KEY_PRESSED
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS Обычный обратный обход фокуса с помощью клавиатуры SHIFT-TAB в KEY_PRESSED, CTRL-SHIFT-TAB в KEY_PRESSED
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS Перейти на один уровень вверх в цикле обхода фокуса отсутствуют
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS Перейти на один уровень вниз в цикле обхода фокуса отсутствуют
Чтобы отключить клавишу обхода, используйте пустой Set; рекомендуется Collections.EMPTY_SET.

С помощью API AWTKeyStroke клиентский код может указать, к какому из двух конкретных KeyEvent — KEY_PRESSED или KEY_RELEASED — будет применяться операция обхода фокуса. Однако независимо от того, какой KeyEvent указан, все KeyEvent, связанные с клавишей обхода фокуса, включая соответствующее событие KEY_TYPED, будут обработаны и не будут отправлены ни одному Component. Указание события KEY_TYPED как соответствующего операции обхода фокуса или назначение одного и того же события нескольким операциям обхода фокуса по умолчанию является ошибкой времени выполнения.

Этот метод может вызвать исключение ClassCastException, если какой-либо Object в keystrokes не является AWTKeyStroke.

Параметры:
id — одно из значений KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS или KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
keystrokes — Set объектов AWTKeyStroke для указанной операции
Вызывает исключение:
IllegalArgumentException — если id не является одним из KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS или KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS, либо если keystrokes равен null, содержит null, либо если какое-либо нажатие клавиши представляет собой событие KEY_TYPED, либо если какое-либо нажатие клавиши уже сопоставлено с другой операцией обхода фокуса по умолчанию
См. также:
  • getDefaultFocusTraversalKeys(int)
  • Component.setFocusTraversalKeys(int, Set)
  • Component.getFocusTraversalKeys(int)

getDefaultFocusTraversalKeys

public Set<AWTKeyStroke> getDefaultFocusTraversalKeys(int id)
Возвращает Set клавиш обхода фокуса по умолчанию для указанной операции обхода. Этот Set клавиш обхода фокуса будет применяться ко всем окнам, для которых явно не задан собственный Set. Этот Set также будет рекурсивно наследоваться любым дочерним Component этих окон, для которого явно не задан собственный Set. (Полное описание каждой операции см. в setDefaultFocusTraversalKeys.)
Параметры:
id — одно из значений KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS или KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
Возвращает:
Set объектов AWTKeyStroke для указанной операции; Set будет неизменяемым и может быть пустым; null никогда не возвращается
Вызывает исключение:
IllegalArgumentException — если id не является одним из KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS или KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
См. также:
  • setDefaultFocusTraversalKeys(int, Set)
  • Component.setFocusTraversalKeys(int, Set)
  • Component.getFocusTraversalKeys(int)

getCurrentFocusCycleRoot

public Container getCurrentFocusCycleRoot()
Возвращает текущий корень цикла обхода фокуса, если он находится в том же контексте, что и вызывающий поток. Если владелец фокуса сам является корнем цикла обхода фокуса, может быть неоднозначно, какие Components являются следующим и предыдущим компонентами для получения фокуса при обычном обходе фокуса. В этом случае текущий корень цикла обхода фокуса используется для выбора одного из возможных вариантов.

Этот метод предназначен исключительно для KeyboardFocusManager и реализаций фокуса. Он не предназначен для общего использования клиентским кодом.

Возвращает:
текущий корень цикла обхода фокуса или null, если он не принадлежит контексту вызывающего потока
См. также:
  • getGlobalCurrentFocusCycleRoot()
  • setGlobalCurrentFocusCycleRoot(Container)

getGlobalCurrentFocusCycleRoot

protected Container getGlobalCurrentFocusCycleRoot()
Возвращает текущий корень цикла обхода фокуса, даже если вызывающий поток находится в другом контексте. Если владелец фокуса сам является корнем цикла обхода фокуса, может быть неоднозначно, какие Components являются следующим и предыдущим компонентами для получения фокуса при обычном обходе фокуса. В этом случае текущий корень цикла обхода фокуса используется для выбора одного из возможных вариантов.
Возвращает:
текущий корень цикла обхода фокуса или null, если он не принадлежит контексту вызывающего потока
См. также:
  • getCurrentFocusCycleRoot()
  • setGlobalCurrentFocusCycleRoot(Container)

setGlobalCurrentFocusCycleRoot

public void setGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot)
Задаёт текущий корень цикла обхода фокуса. Если владелец фокуса сам является корнем цикла обхода фокуса, может быть неоднозначно, какие Components являются следующим и предыдущим компонентами для получения фокуса при обычном обходе фокуса. В этом случае текущий корень цикла обхода фокуса используется для выбора одного из возможных вариантов.

Этот метод предназначен исключительно для KeyboardFocusManager и реализаций фокуса. Он не предназначен для общего использования клиентским кодом.

Параметры:
newFocusCycleRoot — новый корень цикла обхода фокуса
См. также:
  • 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 равен null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — PropertyChangeListener, который требуется добавить
См. также:
  • removePropertyChangeListener(PropertyChangeListener)
  • getPropertyChangeListeners()
  • addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener listener)
Удаляет PropertyChangeListener из списка слушателей. Этот метод следует использовать для удаления PropertyChangeListener, зарегистрированных для всех связанных свойств этого класса.

Если listener равен null, исключение не выбрасывается и никаких действий не выполняется.

Параметры:
listener — PropertyChangeListener, который требуется удалить
См. также:
  • addPropertyChangeListener(PropertyChangeListener)
  • getPropertyChangeListeners()
  • removePropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners()
Возвращает массив всех слушателей изменений свойств, зарегистрированных в этом менеджере фокуса клавиатуры.
Возвращает:
все PropertyChangeListenerы этого менеджера фокуса клавиатуры или пустой массив, если в данный момент не зарегистрировано ни одного слушателя изменений свойств
Начиная с версии:
1.4
См. также:
  • addPropertyChangeListener(PropertyChangeListener)
  • removePropertyChangeListener(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")
Если listener равен null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
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 из списка слушателей для конкретного свойства. Этот метод следует использовать для удаления PropertyChangeListener, зарегистрированных для конкретного связанного свойства.

Если 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)
Возвращает массив всех PropertyChangeListenerов, связанных с указанным свойством.
Параметры:
propertyName — имя свойства
Возвращает:
все PropertyChangeListenerы, связанные с указанным свойством, или пустой массив, если такие слушатели не добавлялись.
Начиная с версии:
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 в ответ на изменение связанного свойства. Событие будет доставлено всем зарегистрированным PropertyChangeListener. Событие не будет доставлено, если oldValue и newValue совпадают.
Параметры:
propertyName — имя изменившегося свойства
oldValue — предыдущее значение свойства
newValue — новое значение свойства

addVetoableChangeListener

public void addVetoableChangeListener(VetoableChangeListener listener)
Добавляет VetoableChangeListener в список слушателей. Слушатель регистрируется для всех свойств этого класса, изменение которых может быть запрещено, включая следующие:
  • владелец фокуса ("focusOwner")
  • постоянный владелец фокуса ("permanentFocusOwner")
  • окно в фокусе ("focusedWindow")
  • активное окно ("activeWindow")
Если listener равен null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — VetoableChangeListener, который требуется добавить
См. также:
  • removeVetoableChangeListener(VetoableChangeListener)
  • getVetoableChangeListeners()
  • addVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)

removeVetoableChangeListener

public void removeVetoableChangeListener(VetoableChangeListener listener)
Удаляет VetoableChangeListener из списка слушателей. Этот метод следует использовать для удаления VetoableChangeListener, зарегистрированных для всех свойств этого класса, изменение которых может быть запрещено.

Если listener равен null, исключение не выбрасывается и никаких действий не выполняется.

Параметры:
listener — VetoableChangeListener, который требуется удалить
См. также:
  • addVetoableChangeListener(VetoableChangeListener)
  • getVetoableChangeListeners()
  • removeVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)

getVetoableChangeListeners

public VetoableChangeListener[] getVetoableChangeListeners()
Возвращает массив всех слушателей изменений с возможностью запрета, зарегистрированных в этом менеджере фокуса клавиатуры.
Возвращает:
все VetoableChangeListenerы этого менеджера фокуса клавиатуры или пустой массив, если в данный момент не зарегистрировано ни одного слушателя изменений с возможностью запрета
Начиная с версии:
1.4
См. также:
  • addVetoableChangeListener(VetoableChangeListener)
  • removeVetoableChangeListener(VetoableChangeListener)
  • getVetoableChangeListeners(java.lang.String)

addVetoableChangeListener

public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener)
Добавляет VetoableChangeListener в список слушателей для конкретного свойства. Указанное свойство может быть определено пользователем или быть одним из следующих:
  • владелец фокуса ("focusOwner")
  • постоянный владелец фокуса ("permanentFocusOwner")
  • окно в фокусе ("focusedWindow")
  • активное окно ("activeWindow")
Если listener равен null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
propertyName — одно из перечисленных выше имен свойств
listener — VetoableChangeListener, который требуется добавить
См. также:
  • addVetoableChangeListener(java.beans.VetoableChangeListener)
  • removeVetoableChangeListener(VetoableChangeListener)
  • getVetoableChangeListeners()

removeVetoableChangeListener

public void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener)
Удаляет VetoableChangeListener из списка слушателей для конкретного свойства. Этот метод следует использовать для удаления VetoableChangeListener, зарегистрированных для конкретного связанного свойства.

Если listener равен null, исключение не выбрасывается и никаких действий не выполняется.

Параметры:
propertyName — допустимое имя свойства
listener — VetoableChangeListener, который требуется удалить
См. также:
  • addVetoableChangeListener(VetoableChangeListener)
  • getVetoableChangeListeners()
  • removeVetoableChangeListener(java.beans.VetoableChangeListener)

getVetoableChangeListeners

public VetoableChangeListener[] getVetoableChangeListeners(String propertyName)
Возвращает массив всех VetoableChangeListenerов, связанных с указанным свойством.
Параметры:
propertyName — имя свойства
Возвращает:
все VetoableChangeListenerы, связанные с указанным свойством, или пустой массив, если такие слушатели не добавлялись.
Начиная с версии:
1.4
См. также:
  • 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 в ответ на изменение свойства, изменение которого может быть запрещено. Событие будет доставлено всем зарегистрированным VetoableChangeListener. Если VetoableChangeListener выбрасывает PropertyVetoException, генерируется новое событие, возвращающее все VetoableChangeListener к старому значению, после чего исключение выбрасывается повторно. Событие не будет доставлено, если oldValue и newValue совпадают.
Параметры:
propertyName — имя изменившегося свойства
oldValue — предыдущее значение свойства
newValue — новое значение свойства
Выбрасывает:
PropertyVetoException — если VetoableChangeListener выбросил PropertyVetoException

addKeyEventDispatcher

public void addKeyEventDispatcher(KeyEventDispatcher dispatcher)
Добавляет KeyEventDispatcher в цепочку диспетчеризации этого KeyboardFocusManager. Этот KeyboardFocusManager запросит, чтобы каждый KeyEventDispatcher диспетчеризировал сгенерированные пользователем KeyEvent, прежде чем сам диспетчеризировать KeyEvent. KeyEventDispatcher будут получать уведомления в порядке добавления. Уведомления прекратятся, как только один из KeyEventDispatcher вернет true из своего метода dispatchKeyEvent. Число добавляемых KeyEventDispatcher не ограничено, как не ограничено и число добавлений одного и того же экземпляра KeyEventDispatcher.

Если указан диспетчер null, никаких действий не выполняется и исключение не выбрасывается.

В многопоточном приложении KeyEventDispatcher ведет себя так же, как и другие слушатели AWT. Подробнее см. в разделе Проблемы многопоточности AWT.

Параметры:
dispatcher — KeyEventDispatcher, который требуется добавить в цепочку диспетчеризации
См. также:
  • removeKeyEventDispatcher(KeyEventDispatcher)

removeKeyEventDispatcher

public void removeKeyEventDispatcher(KeyEventDispatcher dispatcher)
Удаляет KeyEventDispatcher, ранее добавленный в цепочку диспетчеризации этого KeyboardFocusManager. Сам этот KeyboardFocusManager нельзя удалить, если только он не был явно зарегистрирован повторно вызовом addKeyEventDispatcher.

Если указан диспетчер null, указанный диспетчер отсутствует в цепочке диспетчеризации или указан этот KeyboardFocusManager без его явной повторной регистрации, никаких действий не выполняется и исключение не выбрасывается.

В многопоточном приложении KeyEventDispatcher ведет себя так же, как и другие слушатели AWT. Подробнее см. в разделе Проблемы многопоточности AWT.

Параметры:
dispatcher — KeyEventDispatcher, который требуется удалить из цепочки диспетчеризации
См. также:
  • addKeyEventDispatcher(KeyEventDispatcher)

getKeyEventDispatchers

protected List<KeyEventDispatcher> getKeyEventDispatchers()
Возвращает цепочку KeyEventDispatcher этого KeyboardFocusManager в виде List. Этот List не будет включать данный KeyboardFocusManager, если только он не был явно зарегистрирован повторно вызовом addKeyEventDispatcher. Если другие KeyEventDispatcher не зарегистрированы, реализации могут возвращать null или List длины 0. Клиентский код не должен полагаться на один из вариантов поведения, а также считать, что установленное поведение не изменится.
Возвращает:
возможно, null или пустой List объектов KeyEventDispatcher
См. также:
  • addKeyEventDispatcher(KeyEventDispatcher)
  • removeKeyEventDispatcher(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(KeyEventPostProcessor)

removeKeyEventPostProcessor

public void removeKeyEventPostProcessor(KeyEventPostProcessor processor)
Удаляет ранее добавленный KeyEventPostProcessor из цепочки постобработки этого KeyboardFocusManager. Сам KeyboardFocusManager нельзя полностью удалить из цепочки. Можно удалить только дополнительные ссылки, добавленные с помощью addKeyEventPostProcessor.

Если указан постпроцессор null, указанный постпроцессор отсутствует в цепочке постобработки или указан этот KeyboardFocusManager без его явного добавления, никаких действий не выполняется и исключение не выбрасывается.

В многопоточном приложении KeyEventPostProcessor ведет себя так же, как и другие слушатели AWT. Подробнее см. в разделе Проблемы многопоточности AWT.

Параметры:
processor — KeyEventPostProcessor, который требуется удалить из цепочки постобработки
См. также:
  • addKeyEventPostProcessor(KeyEventPostProcessor)

getKeyEventPostProcessors

protected List<KeyEventPostProcessor> getKeyEventPostProcessors()
Возвращает цепочку KeyEventPostProcessor этого KeyboardFocusManager в виде List. Этот List не будет включать данный KeyboardFocusManager, если только он не был явно добавлен вызовом addKeyEventPostProcessor. Если KeyEventPostProcessor не зарегистрированы, реализации могут возвращать null или List длины 0. Клиентский код не должен полагаться на один из вариантов поведения, а также считать, что установленное поведение не изменится.
Возвращает:
возможно, null или пустой List объектов KeyEventPostProcessor
См. также:
  • addKeyEventPostProcessor(KeyEventPostProcessor)
  • removeKeyEventPostProcessor(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(Component, AWTEvent)
  • dispatchKeyEvent(KeyEvent)

redispatchEvent

public final void redispatchEvent(Component target, AWTEvent e)
Повторно диспетчеризирует AWTEvent таким образом, чтобы диспетчер событий AWT не запрашивал рекурсивно повторную диспетчеризацию события у KeyboardFocusManager или любых установленных KeyEventDispatcher. Клиентские реализации dispatchEvent и определенные клиентом KeyEventDispatcher должны вызывать redispatchEvent(target, e) вместо target.dispatchEvent(e) для диспетчеризации события.

Этот метод предназначен только для KeyboardFocusManager и KeyEventDispatcher. Он не предназначен для общего использования клиентским кодом.

Параметры:
target — Component, которому следует передать событие
e — событие, которое требуется диспетчеризировать
См. также:
  • dispatchEvent(AWTEvent)
  • KeyEventDispatcher

dispatchKeyEvent

public abstract boolean dispatchKeyEvent(KeyEvent e)
Обычно этот метод вызывается методом dispatchEvent, если ни один другой KeyEventDispatcher в цепочке диспетчеризации не диспетчеризировал KeyEvent или если другие KeyEventDispatcher не зарегистрированы. Если реализация этого метода возвращает false, dispatchEvent может попытаться диспетчеризировать KeyEvent самостоятельно или просто вернуть false. Если возвращается true, dispatchEvent также должен вернуть true.
Определено в:
dispatchKeyEvent в интерфейсе KeyEventDispatcher
Параметры:
e — KeyEvent, который текущий KeyboardFocusManager попросил диспетчеризировать этот KeyEventDispatcher
Возвращает:
true, если KeyEvent был диспетчеризирован; в противном случае — false
См. также:
  • dispatchEvent(AWTEvent)

postProcessKeyEvent

public abstract boolean postProcessKeyEvent(KeyEvent e)
Этот метод будет вызван методом dispatchKeyEvent. По умолчанию этот метод обрабатывает все непотребленные KeyEvent, соответствующие MenuShortcut AWT, потребляя событие и активируя сочетание клавиш.
Определено в:
postProcessKeyEvent в интерфейсе KeyEventPostProcessor
Параметры:
e — KeyEvent, который требуется обработать после диспетчеризации
Возвращает:
true, чтобы указать, что другие KeyEventPostProcessor не будут уведомлены о KeyEvent.
См. также:
  • dispatchKeyEvent(KeyEvent)
  • MenuShortcut

processKeyEvent

public abstract void processKeyEvent(Component focusedComponent, KeyEvent e)
Этот метод инициирует операцию обхода фокуса тогда и только тогда, когда KeyEvent представляет собой клавишу обхода фокуса для указанного focusedComponent. Предполагается, что focusedComponent является текущим владельцем фокуса, однако это не обязательно. Если это не так, обход фокуса все равно будет выполняться так, как если бы focusedComponent был текущим владельцем фокуса.
Параметры:
focusedComponent — Component, который будет использоваться как основа операции обхода фокуса, если указанное событие представляет собой клавишу обхода фокуса для Component
e — событие, которое может представлять собой клавишу обхода фокуса

enqueueKeyEvents

protected abstract void enqueueKeyEvents(long after, Component untilFocused)
Вызывается AWT, чтобы уведомить KeyboardFocusManager о необходимости отложить диспетчеризацию KeyEvent до тех пор, пока указанный Component не станет владельцем фокуса. Если клиентский код запрашивает изменение фокуса и AWT определяет, что этот запрос может быть удовлетворен оконной системой, AWT вызывает этот метод. KeyboardFocusManager отвечает за задержку диспетчеризации KeyEvent с временными метками, более поздними, чем указанная временная метка, до тех пор, пока указанный Component не получит событие FOCUS_GAINED или AWT не отменит запрос на задержку вызовом dequeueKeyEvents или discardKeyEvents.
Параметры:
after — временная метка текущего события либо текущее системное время, если у текущего события нет временной метки или AWT не может определить, какое событие обрабатывается в данный момент
untilFocused — Component, который должен получить событие FOCUS_GAINED до обработки любых ожидающих KeyEvent
См. также:
  • dequeueKeyEvents(long, Component)
  • discardKeyEvents(Component)

dequeueKeyEvents

protected abstract void dequeueKeyEvents(long after, Component untilFocused)
Вызывается AWT, чтобы уведомить KeyboardFocusManager о необходимости отменить отложенную обработку KeyEvents. Все KeyEvents, поставленные в очередь в результате вызова enqueueKeyEvents с той же временной меткой и Component, должны быть освобождены для обычной обработки текущим владельцем фокуса. Если заданная временная метка меньше нуля, следует отменить незавершённый запрос на постановку в очередь для заданного Component с самой ранней временной меткой (если таковой имеется).
Параметры:
after — временная метка, указанная при вызове enqueueKeyEvents, или любое значение < 0
untilFocused — Component, указанный при вызове enqueueKeyEvents
См. также:
  • enqueueKeyEvents(long, Component)
  • discardKeyEvents(Component)

discardKeyEvents

protected abstract void discardKeyEvents(Component comp)
Вызывается AWT, чтобы уведомить KeyboardFocusManager о необходимости отменить отложенную обработку KeyEvents. Все KeyEvents, поставленные в очередь в результате одного или нескольких вызовов enqueueKeyEvents с тем же Component, должны быть отброшены.
Параметры:
comp — Component, указанный в одном или нескольких вызовах enqueueKeyEvents
См. также:
  • enqueueKeyEvents(long, Component)
  • dequeueKeyEvents(long, 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 является Window, владельцем фокуса обычно становится компонент Window, установленный по умолчанию для получения фокуса, а текущий корень цикла фокуса не меняется.
Параметры:
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()
Перемещает фокус вверх на один цикл обхода фокуса от текущего владельца фокуса. Обычно новым владельцем фокуса становится корень цикла фокуса для текущего владельца фокуса, а текущим корнем цикла фокуса становится корень цикла фокуса нового владельца фокуса. Однако если корень цикла фокуса текущего владельца фокуса является Window, владельцем фокуса обычно становится компонент корня цикла фокуса, установленный по умолчанию для получения фокуса, а текущий корень цикла фокуса не меняется.

downFocusCycle

public final void downFocusCycle()
Перемещает фокус вниз на один цикл обхода фокуса от текущего владельца фокуса только в том случае, если текущий владелец фокуса является Container, который служит корнем цикла фокуса. Обычно владельцем фокуса становится компонент текущего владельца фокуса, установленный по умолчанию для получения фокуса, а текущим корнем цикла фокуса становится текущий владелец фокуса. Если текущий владелец фокуса не является Container, служащим корнем цикла фокуса, операция обхода фокуса не выполняется.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.desktop/java/awt/KeyboardFocusManager.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API