public abstract class KeyboardFocusManager extends Object implements KeyEventDispatcher, KeyEventPostProcessor
KeyboardFocusManager是客户端代码查询焦点所有者并启动焦点更改的集中位置,以及所有FocusEvents,与焦点相关的WindowEvent和KeyEvents的事件调度程序。
一些浏览器将不同代码库中的小程序分割成单独的上下文,并在这些上下文之间建立墙壁。 在这种情况下,每个上下文将会有一个KeyboardFocusManager。 其他浏览器将所有小程序放入相同的上下文中,这意味着所有小程序都将只有一个全局的KeyboardFocusManager。 这种行为是依赖于实现的。 有关更多信息,请参阅浏览器的文档。 不管有多少上下文可能存在,但是,根据ClassLoader,永远不会有多个焦点所有者,关注窗口或活动窗口。
请参阅How to Use the Focus Subsystem ,在Java教程一节,以及Focus Specification以获取更多信息。
Window
, Frame
, Dialog
, FocusEvent
, WindowEvent
, KeyEvent
Modifier and Type | Field and Description |
---|---|
static int |
BACKWARD_TRAVERSAL_KEYS
后向聚焦遍历键的标识符。
|
static int |
DOWN_CYCLE_TRAVERSAL_KEYS
Down Cycle的标识符聚焦遍历键。
|
static int |
FORWARD_TRAVERSAL_KEYS
正向聚焦遍历键的标识符。
|
static int |
UP_CYCLE_TRAVERSAL_KEYS
上传周期聚焦遍历键的标识符。
|
Constructor and Description |
---|
KeyboardFocusManager()
初始化KeyboardFocusManager。
|
Modifier and Type | Method and Description |
---|---|
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(String propertyName, VetoableChangeListener listener)
将VetoableChangeListener添加到特定属性的侦听器列表中。
|
void |
addVetoableChangeListener(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。
|
void |
downFocusCycle()
当焦点所有者是当前焦点循环根的容器时,将焦点向下移动当前焦点所有者的一个焦点遍历循环。
|
abstract void |
downFocusCycle(Container aContainer)
将焦点向下移动一个焦点遍历周期。
|
protected abstract void |
enqueueKeyEvents(long after, Component untilFocused)
由AWT调用,通知KeyboardFocusManager它应该延迟调度KeyEvents,直到指定的Component成为焦点所有者。
|
protected void |
firePropertyChange(String propertyName, Object oldValue, Object newValue)
触发PropertyChangeEvent以响应绑定属性的更改。
|
protected void |
fireVetoableChange(String propertyName, Object oldValue, Object newValue)
触发PropertyChangeEvent以响应否决权属性的更改。
|
void |
focusNextComponent()
在当前焦点所有者之后聚焦组件。
|
abstract void |
focusNextComponent(Component aComponent)
将组件聚焦在aComponent之后,通常基于FocusTraversalPolicy。
|
void |
focusPreviousComponent()
将组件聚焦到当前焦点所有者之前。
|
abstract void |
focusPreviousComponent(Component aComponent)
在组件之前聚焦组件,通常基于FocusTraversalPolicy。
|
Window |
getActiveWindow()
如果活动窗口与调用线程处于相同的上下文中,则返回活动窗口。
|
Container |
getCurrentFocusCycleRoot()
如果当前焦点循环根与调用线程处于相同的上下文中,则返回当前焦点循环根。
|
static KeyboardFocusManager |
getCurrentKeyboardFocusManager()
返回调用线程上下文的当前KeyboardFocusManager实例。
|
Set<AWTKeyStroke> |
getDefaultFocusTraversalKeys(int id)
返回给定遍历操作的一组默认焦点遍历键。
|
FocusTraversalPolicy |
getDefaultFocusTraversalPolicy()
返回默认的FocusTraversalPolicy。
|
Window |
getFocusedWindow()
如果集中的窗口与调用线程处于相同的上下文中,则返回关注的窗口。
|
Component |
getFocusOwner()
如果焦点所有者与调用线程处于相同的上下文中,则返回焦点所有者。
|
protected Window |
getGlobalActiveWindow()
返回活动窗口,即使调用线程与活动窗口处于不同的上下文中。
|
protected Container |
getGlobalCurrentFocusCycleRoot()
返回当前焦点循环根,即使调用线程与当前焦点循环根不同。
|
protected Window |
getGlobalFocusedWindow()
返回聚焦窗口,即使调用线程与聚焦窗口处于不同的上下文中。
|
protected Component |
getGlobalFocusOwner()
即使调用线程与焦点所有者的上下文不同,返回焦点所有者。
|
protected Component |
getGlobalPermanentFocusOwner()
返回永久焦点所有者,即使调用线程与永久焦点所有者处于不同的上下文中。
|
protected List<KeyEventDispatcher> |
getKeyEventDispatchers()
将此KeyboardFocusManager的KeyEventDispatcher链作为列表返回。
|
protected List<KeyEventPostProcessor> |
getKeyEventPostProcessors()
将此KeyboardFocusManager的KeyEventPostProcessor链返回为列表。
|
Component |
getPermanentFocusOwner()
如果永久焦点所有者与调用线程处于相同的上下文中,则返回永久焦点所有者。
|
PropertyChangeListener[] |
getPropertyChangeListeners()
返回在此键盘焦点管理器上注册的所有属性更改侦听器的数组。
|
PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName)
返回与named属性相关
PropertyChangeListener 的所有
PropertyChangeListener s的数组。
|
VetoableChangeListener[] |
getVetoableChangeListeners()
返回在此键盘焦点管理器上注册的所有否决变更监听器的数组。
|
VetoableChangeListener[] |
getVetoableChangeListeners(String propertyName)
返回与named属性相关
VetoableChangeListener 的所有
VetoableChangeListener 的数组。
|
abstract boolean |
postProcessKeyEvent(KeyEvent e)
此方法将由
dispatchKeyEvent 。
|
abstract void |
processKeyEvent(Component focusedComponent, KeyEvent e)
当且仅当KeyEvent表示指定的focusComponent的焦点遍历键时,此方法启动焦点遍历操作。
|
void |
redispatchEvent(Component target, AWTEvent e)
重新分配AWTEvent,AWT事件调度程序将不会递归地请求KeyboardFocusManager或任何已安装的KeyEventDispatchers再次发送事件。
|
void |
removeKeyEventDispatcher(KeyEventDispatcher dispatcher)
删除之前添加到此KeyboardFocusManager调度程序链的KeyEventDispatcher。
|
void |
removeKeyEventPostProcessor(KeyEventPostProcessor processor)
从此KeyboardFocusManager的后处理器链中删除以前添加的KeyEventPostProcessor。
|
void |
removePropertyChangeListener(PropertyChangeListener listener)
从侦听器列表中移除PropertyChangeListener。
|
void |
removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
从侦听器列表中为特定属性移除PropertyChangeListener。
|
void |
removeVetoableChangeListener(String propertyName, VetoableChangeListener listener)
从侦听器列表中为特定属性删除VetoableChangeListener。
|
void |
removeVetoableChangeListener(VetoableChangeListener listener)
从侦听器列表中删除VetoableChangeListener。
|
static void |
setCurrentKeyboardFocusManager(KeyboardFocusManager newManager)
为调用线程的上下文设置当前的KeyboardFocusManager实例。
|
void |
setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
设置给定遍历操作的默认焦点遍历键。
|
void |
setDefaultFocusTraversalPolicy(FocusTraversalPolicy defaultPolicy)
设置默认的FocusTraversalPolicy。
|
protected void |
setGlobalActiveWindow(Window activeWindow)
设置活动窗口。
|
void |
setGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot)
设置当前焦点循环根。
|
protected void |
setGlobalFocusedWindow(Window focusedWindow)
设置聚焦窗口。
|
protected void |
setGlobalFocusOwner(Component focusOwner)
设置焦点所有者。
|
protected void |
setGlobalPermanentFocusOwner(Component permanentFocusOwner)
设置永久焦点所有者。
|
void |
upFocusCycle()
将焦点移动到当前焦点所有者的一个焦点遍历周期。
|
abstract void |
upFocusCycle(Component aComponent)
将焦点移动到一个焦点遍历周期。
|
public static final int FORWARD_TRAVERSAL_KEYS
public static final int BACKWARD_TRAVERSAL_KEYS
public static final int UP_CYCLE_TRAVERSAL_KEYS
public static final int DOWN_CYCLE_TRAVERSAL_KEYS
public static KeyboardFocusManager getCurrentKeyboardFocusManager()
setCurrentKeyboardFocusManager(java.awt.KeyboardFocusManager)
public static void setCurrentKeyboardFocusManager(KeyboardFocusManager newManager) throws SecurityException
如果安装了SecurityManager,则调用线程必须被授予AWTPermission“replaceKeyboardFocusManager”才能替换当前的KeyboardFocusManager。 如果未授予此权限,则此方法将抛出SecurityException,并且当前的KeyboardFocusManager将不会更改。
newManager
- 这个线程上下文的新KeyboardFocusManager
SecurityException
- 如果调用线程没有权限替换当前的KeyboardFocusManager
getCurrentKeyboardFocusManager()
, DefaultKeyboardFocusManager
public Component getFocusOwner()
getGlobalFocusOwner()
,
setGlobalFocusOwner(java.awt.Component)
protected Component getGlobalFocusOwner() throws SecurityException
如果此KeyboardFocusManager不是调用线程的上下文的当前KeyboardFocusManager,则此方法将抛出SecurityException。
SecurityException
- 如果此KeyboardFocusManager不是调用线程上下文的当前KeyboardFocusManager,并且调用线程没有“replaceKeyboardFocusManager”权限
getFocusOwner()
,
setGlobalFocusOwner(java.awt.Component)
protected void setGlobalFocusOwner(Component focusOwner) throws SecurityException
此方法实际上并没有将焦点设置为指定的组件。 它仅存储getFocusOwner()后续返回的getFocusOwner()
。 使用Component.requestFocus()
或Component.requestFocusInWindow()
更改焦点所有者,但受到平台限制。
focusOwner
- 焦点所有者
SecurityException
- 如果此KeyboardFocusManager不是调用线程的上下文的当前KeyboardFocusManager,并且调用线程没有“replaceKeyboardFocusManager”权限
getFocusOwner()
,
getGlobalFocusOwner()
,
Component.requestFocus()
,
Component.requestFocusInWindow()
,
Component.isFocusable()
public void clearFocusOwner()
焦点所有者组件将收到一个永久的FOCUS_LOST事件。 此操作完成后,本机窗口系统将丢弃所有用户生成的KeyEvent,直到用户选择新组件来接收焦点,或者通过调用requestFocus()
指定了一个requestFocus()
。 此操作不会更改聚焦或活动的Windows。
Component.requestFocus()
,
FocusEvent.FOCUS_LOST
public void clearGlobalFocusOwner() throws SecurityException
requestFocus()
指定了一个requestFocus()
。
此操作不会更改聚焦或活动的Windows。
如果安装了SecurityManager,则调用线程必须被授予“replaceKeyboardFocusManager”AWTPermission。 如果未授予此权限,则此方法将抛出SecurityException异常,并且不会清除当前焦点所有者。
此方法仅供KeyboardFocusManager设置为当前KeyboardFocusManager用于调用线程的上下文。 它不是一般客户使用。
SecurityException
- 如果调用线程没有“replaceKeyboardFocusManager”权限
clearFocusOwner()
,
Component.requestFocus()
,
FocusEvent.FOCUS_LOST
public Component getPermanentFocusOwner()
getGlobalPermanentFocusOwner()
,
setGlobalPermanentFocusOwner(java.awt.Component)
protected Component getGlobalPermanentFocusOwner() throws SecurityException
SecurityException
- 如果此KeyboardFocusManager不是调用线程上下文的当前KeyboardFocusManager,并且调用线程没有“replaceKeyboardFocusManager”权限
getPermanentFocusOwner()
,
setGlobalPermanentFocusOwner(java.awt.Component)
protected void setGlobalPermanentFocusOwner(Component permanentFocusOwner) throws SecurityException
此方法实际上并没有将焦点设置为指定的组件。 它仅存储getPermanentFocusOwner()后续返回的getPermanentFocusOwner()
。 使用Component.requestFocus()
或Component.requestFocusInWindow()
更改焦点所有者,受平台限制。
permanentFocusOwner
- 永久性焦点所有者
SecurityException
- 如果此KeyboardFocusManager不是调用线程上下文的当前KeyboardFocusManager,并且调用线程没有“replaceKeyboardFocusManager”权限
getPermanentFocusOwner()
,
getGlobalPermanentFocusOwner()
,
Component.requestFocus()
,
Component.requestFocusInWindow()
,
Component.isFocusable()
public Window getFocusedWindow()
getGlobalFocusedWindow()
,
setGlobalFocusedWindow(java.awt.Window)
protected Window getGlobalFocusedWindow() throws SecurityException
SecurityException
- 如果此KeyboardFocusManager不是调用线程上下文的当前KeyboardFocusManager,并且调用线程没有“replaceKeyboardFocusManager”权限
getFocusedWindow()
,
setGlobalFocusedWindow(java.awt.Window)
protected void setGlobalFocusedWindow(Window focusedWindow) throws SecurityException
就本地窗口系统而言,此方法实际上并没有改变关注窗口。 它仅存储getFocusedWindow()后续返回的getFocusedWindow()
。 使用Component.requestFocus()
或Component.requestFocusInWindow()
更改聚焦的窗口,受平台限制。
focusedWindow
- 聚焦窗口
SecurityException
- 如果此KeyboardFocusManager不是调用线程上下文的当前KeyboardFocusManager,并且调用线程没有“replaceKeyboardFocusManager”权限
getFocusedWindow()
,
getGlobalFocusedWindow()
,
Component.requestFocus()
,
Component.requestFocusInWindow()
,
Window.isFocusableWindow()
public Window getActiveWindow()
getGlobalActiveWindow()
,
setGlobalActiveWindow(java.awt.Window)
protected Window getGlobalActiveWindow() throws SecurityException
SecurityException
- 如果此KeyboardFocusManager不是调用线程上下文的当前KeyboardFocusManager,并且调用线程没有“replaceKeyboardFocusManager”权限
getActiveWindow()
,
setGlobalActiveWindow(java.awt.Window)
protected void setGlobalActiveWindow(Window activeWindow) throws SecurityException
就本地窗口系统而言,此方法实际上并不会更改活动窗口。 它仅存储getActiveWindow()后续返回的getActiveWindow()
。 使用Component.requestFocus()
或Component.requestFocusInWindow()
更改活动窗口,受平台限制。
activeWindow
- 活动窗口
SecurityException
- 如果此KeyboardFocusManager不是调用线程上下文的当前KeyboardFocusManager,并且调用线程没有“replaceKeyboardFocusManager”权限
getActiveWindow()
,
getGlobalActiveWindow()
,
Component.requestFocus()
,
Component.requestFocusInWindow()
public FocusTraversalPolicy getDefaultFocusTraversalPolicy()
setDefaultFocusTraversalPolicy(java.awt.FocusTraversalPolicy)
,
Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)
,
Container.getFocusTraversalPolicy()
public void setDefaultFocusTraversalPolicy(FocusTraversalPolicy defaultPolicy)
defaultPolicy
- 新的默认FocusTraversalPolicy
IllegalArgumentException
- 如果defaultPolicy为空
getDefaultFocusTraversalPolicy()
,
Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)
,
Container.getFocusTraversalPolicy()
public void setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
Set
将在所有影响Window
S作没有这样Set
自己的明确定义。
这Set
也将被继承,递归,任何孩子Component
那些Windows
有没有这样Set
其自身的明确定义。
默认焦点遍历键的默认值与实现相关。 Sun建议特定本地平台的所有实现使用相同的默认值。 Windows和Unix的建议如下。 这些建议用于Sun AWT实现。
Identifier Meaning DefaultKeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
Normal forward keyboard traversal TAB
on KEY_PRESSED
, CTRL-TAB
on KEY_PRESSED
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
Normal reverse keyboard traversal SHIFT-TAB
on KEY_PRESSED
, CTRL-SHIFT-TAB
on KEY_PRESSED
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
Go up one focus traversal cycle none KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
Go down one focus traversal cycle none
Set
;
Collections.EMPTY_SET
Collections.EMPTY_SET。
使用AWTKeyStroke
API,客户端代码可以指定哪两个特定的KeyEvent
s, KEY_PRESSED
或KEY_RELEASED
,将进行重点遍历操作。 然而,无论KeyEvent
哪个KeyEvent
,与所有KeyEvent
s相关的所有KeyEvent
s相关的重点遍历密钥,包括相关的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
,或按键为
null
,或者击键包含
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
-
id
之一,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
Set
的AWTKeyStroke
s为指定的操作;
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)
public Container getCurrentFocusCycleRoot()
此方法仅供KeyboardFocusManagers和焦点实施使用。 它不是一般客户使用。
getGlobalCurrentFocusCycleRoot()
,
setGlobalCurrentFocusCycleRoot(java.awt.Container)
protected Container getGlobalCurrentFocusCycleRoot() throws SecurityException
SecurityException
- 如果此KeyboardFocusManager不是调用线程上下文的当前KeyboardFocusManager,并且调用线程没有“replaceKeyboardFocusManager”权限
getCurrentFocusCycleRoot()
,
setGlobalCurrentFocusCycleRoot(java.awt.Container)
public void setGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot) throws SecurityException
如果安装了SecurityManager,则调用线程必须被授予“replaceKeyboardFocusManager”AWTPermission。 如果未授予此权限,则此方法将抛出SecurityException,并且当前焦点循环根不会被更改。
此方法仅供KeyboardFocusManagers和焦点实施使用。 它不是一般客户使用。
newFocusCycleRoot
- 新的焦点循环根
SecurityException
- 如果调用线程没有“replaceKeyboardFocusManager”权限
getCurrentFocusCycleRoot()
,
getGlobalCurrentFocusCycleRoot()
public void addPropertyChangeListener(PropertyChangeListener listener)
listener
- 要添加的PropertyChangeListener
removePropertyChangeListener(java.beans.PropertyChangeListener)
,
getPropertyChangeListeners()
,
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public void removePropertyChangeListener(PropertyChangeListener listener)
如果侦听器为空,则不会抛出异常,也不会执行任何操作。
listener
- 要删除的PropertyChangeListener
addPropertyChangeListener(java.beans.PropertyChangeListener)
,
getPropertyChangeListeners()
,
removePropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public PropertyChangeListener[] getPropertyChangeListeners()
PropertyChangeListener
s或一个空数组,如果没有属性更改侦听器当前注册
addPropertyChangeListener(java.beans.PropertyChangeListener)
,
removePropertyChangeListener(java.beans.PropertyChangeListener)
,
getPropertyChangeListeners(java.lang.String)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
propertyName
- 上面列出的属性名称之一
listener
- 要添加的PropertyChangeListener
addPropertyChangeListener(java.beans.PropertyChangeListener)
,
removePropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
,
getPropertyChangeListeners(java.lang.String)
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
如果侦听器为空,则不会抛出异常,也不会执行任何操作。
propertyName
- 有效的属性名称
listener
- 要删除的PropertyChangeListener
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
,
getPropertyChangeListeners(java.lang.String)
,
removePropertyChangeListener(java.beans.PropertyChangeListener)
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
PropertyChangeListener
的所有
PropertyChangeListener
的数组。
PropertyChangeListener
s或没有添加这样的侦听器的空数组。
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
,
removePropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)
propertyName
- 已更改的属性的名称
oldValue
- 该物业的以前的价值
newValue
- 该物业的新价值
public void addVetoableChangeListener(VetoableChangeListener listener)
listener
- 要添加的VetoableChangeListener
removeVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners()
,
addVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
public void removeVetoableChangeListener(VetoableChangeListener listener)
如果侦听器为空,则不会抛出异常,也不会执行任何操作。
listener
- 要删除的VetoableChangeListener
addVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners()
,
removeVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
public VetoableChangeListener[] getVetoableChangeListeners()
VetoableChangeListener
s或一个空数组,如果没有否决变更听众当前注册
addVetoableChangeListener(java.beans.VetoableChangeListener)
,
removeVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners(java.lang.String)
public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener)
propertyName
- 上面列出的属性名称之一
listener
- 要添加的VetoableChangeListener
addVetoableChangeListener(java.beans.VetoableChangeListener)
,
removeVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners()
public void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener)
如果侦听器为空,则不会抛出异常,也不会执行任何操作。
propertyName
- 有效的属性名称
listener
- 要删除的VetoableChangeListener
addVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners()
,
removeVetoableChangeListener(java.beans.VetoableChangeListener)
public VetoableChangeListener[] getVetoableChangeListeners(String propertyName)
VetoableChangeListener
的所有
VetoableChangeListener
的数组。
VetoableChangeListener
s或没有添加这样的侦听器的空数组。
addVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
,
removeVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
,
getVetoableChangeListeners()
protected void fireVetoableChange(String propertyName, Object oldValue, Object newValue) throws PropertyVetoException
propertyName
- 已更改的属性的名称
oldValue
- 该物业的以前的价值
newValue
- 该物业的新价值
PropertyVetoException
- 如果一个
VetoableChangeListener
投掷
PropertyVetoException
public void addKeyEventDispatcher(KeyEventDispatcher dispatcher)
true
从其dispatchKeyEvent
方法返回true
,通知将停止。
对于可以添加的KeyEventDispatchers的总数以及可以添加特定的KeyEventDispatcher实例的次数没有限制。
如果指定了空调度器,则不会执行任何操作,也不会抛出任何异常。
在多线程应用程序中, KeyEventDispatcher
与其他AWT侦听器的行为相同。 详见AWT Threading Issues 。
dispatcher
- 要添加到调度程序链的KeyEventDispatcher
removeKeyEventDispatcher(java.awt.KeyEventDispatcher)
public void removeKeyEventDispatcher(KeyEventDispatcher dispatcher)
addKeyEventDispatcher
。
如果指定了一个空调度器,如果指定的调度程序不在调度程序链中,或者如果在未明确重新注册的情况下指定了此KeyboardFocusManager,则不会执行任何操作,也不会引发异常。
在多线程应用程序中, KeyEventDispatcher
与其他AWT侦听器的行为相同。 详见AWT Threading Issues 。
dispatcher
- 要从调度程序链中删除的KeyEventDispatcher
addKeyEventDispatcher(java.awt.KeyEventDispatcher)
protected List<KeyEventDispatcher> getKeyEventDispatchers()
addKeyEventDispatcher
显式重新addKeyEventDispatcher
。
如果没有其他的KeyEventDispatchers被注册,实现可以自由地返回null或一个长度为0的列表。客户端代码不应该假定一个行为超过另一个,也不应该假定一旦建立的行为将不会改变。
addKeyEventDispatcher(java.awt.KeyEventDispatcher)
,
removeKeyEventDispatcher(java.awt.KeyEventDispatcher)
public void addKeyEventPostProcessor(KeyEventPostProcessor processor)
true
从其postProcessKeyEvent
方法返回true
,通知将停止。
对于可以添加的KeyEventPostProcessors的总数以及可以添加特定的KeyEventPostProcessor实例的次数没有限制。
如果指定了空的后处理器,则不会采取任何操作,也不会抛出任何异常。
在多线程应用程序中, KeyEventPostProcessor
的行为与其他AWT侦听器相同。 详见AWT Threading Issues 。
processor
- 要添加到后处理器链的KeyEventPostProcessor
removeKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
public void removeKeyEventPostProcessor(KeyEventPostProcessor processor)
addKeyEventPostProcessor
可以被删除。
如果指定了空的后处理器,如果指定的后处理器不在后处理器链中,或者如果未指定此KeyboardFocusManager,而不显式添加,则不会执行任何操作,也不会引发任何异常。
在多线程应用程序中, KeyEventPostProcessor
的行为与其他AWT侦听器相同。 详见AWT Threading Issues 。
processor
- 从后处理器链中删除的KeyEventPostProcessor
addKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
protected List<KeyEventPostProcessor> getKeyEventPostProcessors()
addKeyEventPostProcessor
。
如果没有注册KeyEventPostProcessors,实现可以返回null或者一个长度为0的列表。客户端代码不应该假定一个行为超过另一个,也不应该假定一旦建立的行为将不会改变。
addKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
,
removeKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
public abstract boolean dispatchEvent(AWTEvent e)
redispatchEvent
进行redispatchEvent
,以防止AWT事件分派器递归地请求KeyboardFocusManager再次分派事件。
如果此方法返回false
,则AWT事件调度程序将尝试调度事件本身。
e
- 要发送的AWTEvent
true
如果此方法调度事件;
false
否则
redispatchEvent(java.awt.Component, java.awt.AWTEvent)
,
dispatchKeyEvent(java.awt.event.KeyEvent)
public final void redispatchEvent(Component target, AWTEvent e)
dispatchEvent
和客户端定义的KeyEventDispatchers的客户端实现必须调用redispatchEvent(target, e)
而不是target.dispatchEvent(e)
来分派事件。
此方法仅供KeyboardFocusManagers和KeyEventDispatchers使用。 它不是一般客户使用。
target
- 事件应分发到的组件
e
- 要发送的事件
dispatchEvent(java.awt.AWTEvent)
, KeyEventDispatcher
public abstract boolean dispatchKeyEvent(KeyEvent e)
dispatchEvent
如果在调度程序链没有其他的KeyEventDispatcher调度KeyEvent,或者如果没有注册其他KeyEventDispatcher。
如果此方法的实现返回false
, dispatchEvent
可能试图指派KeyEvent本身,或者可能简单地返回false
。
如果true
返回, dispatchEvent
也应该返回true
。
dispatchKeyEvent
在接口
KeyEventDispatcher
e
- 当前KeyboardFocusManager请求此KeyEventDispatcher调度的KeyEvent
true
如果KeyEvent被调度;
false
否则
dispatchEvent(java.awt.AWTEvent)
public abstract boolean postProcessKeyEvent(KeyEvent e)
dispatchKeyEvent
。
默认情况下,此方法将通过消耗事件并激活快捷方式来处理映射到AWT MenuShortcut
的任何未MenuShortcut
的KeyEvents。
postProcessKeyEvent
在接口
KeyEventPostProcessor
e
- 后期处理的KeyEvent
true
表示没有其他的KeyEventPostProcessor将被通知KeyEvent。
dispatchKeyEvent(java.awt.event.KeyEvent)
, MenuShortcut
public abstract void processKeyEvent(Component focusedComponent, KeyEvent e)
focusedComponent
- 组件,它将作为聚焦遍历操作的基础,如果指定的事件表示组件的焦点遍历键
e
- 可能代表焦点遍历键的事件
protected abstract void enqueueKeyEvents(long after, Component untilFocused)
dequeueKeyEvents
或discardKeyEvents
取消延迟请求。
after
- 当前事件的时间戳或当前事件没有时间戳的当前系统时间,或者AWT无法确定当前正在处理哪个事件
untilFocused
- 应该在任何待处理的KeyEvent之前收到FOCUS_GAINED事件的组件
dequeueKeyEvents(long, java.awt.Component)
,
discardKeyEvents(java.awt.Component)
protected abstract void dequeueKeyEvents(long after, Component untilFocused)
enqueueKeyEvents
具有相同时间戳和Component应该被释放正常指派到当前焦点所有者。
如果给定的时间戳小于零,则应取消给具有最早时间戳(如果有)的给定组件的未完成的入队请求。
after
- 在调用enqueueKeyEvents中指定的
enqueueKeyEvents
,或任何值<0
untilFocused
- 在调用enqueueKeyEvents中指定的
enqueueKeyEvents
enqueueKeyEvents(long, java.awt.Component)
,
discardKeyEvents(java.awt.Component)
protected abstract void discardKeyEvents(Component comp)
enqueueKeyEvents
用相同的组件应该被丢弃。
comp
- 在一次或多次调用
enqueueKeyEvents
enqueueKeyEvents(long, java.awt.Component)
,
dequeueKeyEvents(long, java.awt.Component)
public abstract void focusNextComponent(Component aComponent)
aComponent
- 作为焦点遍历操作的基础的组件
FocusTraversalPolicy
public abstract void focusPreviousComponent(Component aComponent)
aComponent
- 作为焦点遍历操作的基础的组件
FocusTraversalPolicy
public abstract void upFocusCycle(Component aComponent)
aComponent
- 作为焦点遍历操作的基础的组件
public abstract void downFocusCycle(Container aContainer)
aContainer
- 作为焦点遍历操作的基础的容器
public final void focusNextComponent()
public final void focusPreviousComponent()
public final void upFocusCycle()
public final void downFocusCycle()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.