|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.KeyboardFocusManager
public abstract class KeyboardFocusManager
KeyboardFocusManager 負責管理啟動狀態的聚焦 Window 和當前焦點所有者。焦點所有者的定義是:應用程序中的 Component,通常接收使用者產生的所有 KeyEvent。聚焦 Window 指本身就是(或者包含)焦點所有者的 Window。只有 Frame 或 Dialog 才能成為活動 Window。本機的視窗作業系統可能使用特殊裝飾(如高亮顯示標題欄)來表示活動 Window 或其子視窗。活動 Window 要麼是聚焦 Window,要麼是作為聚焦 Window 所有者的第一個 Frame 或 Dialog。
KeyboardFocusManager 既是一個用於查詢焦點所有者並啟動焦點更改的客戶端程式碼的集中位置,同時又是一個用於所有 FocusEvent、與焦點相關的 WindowEvent 和 KeyEvent 的排程程序。
有些瀏覽器將使用不同程式碼進制的 applet 劃分為單獨的上下文,並在這些上下文之間建牆分隔。在此方案中,每個上下文都將具有一個 KeyboardFocusManager。其他瀏覽器將所有 applet 置於同一個上下文中,這意味著僅存在一個用於所有 applet 的全體 KeyboardFocusManager。此行為是依賴於實作的。請參考瀏覽器文檔以獲取更多資訊。然而,不管可能有多少上下文,每個 ClassLoader 的焦點所有者、聚焦 Window 或活動 Window 只能有一個。
請參見 How to Use the Focus Subsystem(The Java Tutorial 的一節)和 Focus Specification 以獲取更多資訊。
Window
,
Frame
,
Dialog
,
FocusEvent
,
WindowEvent
,
KeyEvent
欄位摘要 | |
---|---|
static int |
BACKWARD_TRAVERSAL_KEYS
Backward 焦點遍歷鍵的標識符。 |
static int |
DOWN_CYCLE_TRAVERSAL_KEYS
Down Cycle 焦點遍歷鍵的標識符。 |
static int |
FORWARD_TRAVERSAL_KEYS
Forward 焦點遍歷鍵的標識符。 |
static int |
UP_CYCLE_TRAVERSAL_KEYS
Up Cycle 焦點遍歷鍵的標識符。 |
建構子摘要 | |
---|---|
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(String propertyName,
VetoableChangeListener listener)
將 VetoableChangeListener 添加到特定屬性的偵聽器列表。 |
void |
addVetoableChangeListener(VetoableChangeListener listener)
將 VetoableChangeListener 添加到偵聽器列表。 |
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)
通常情況下,如果該指派程序鏈中的其他 KeyEventDispatcher 沒有指派 KeyEvent 或者沒有註冊其他 KeyEventDispatcher,則 dispatchEvent 將調用此方法。 |
void |
downFocusCycle()
當且僅當當前焦點所有者是一個作為焦點循環根的 Container 時,從當前焦點所有者將焦點下移一個焦點遍歷循環。 |
abstract void |
downFocusCycle(Container aContainer)
將焦點下移一個焦點遍歷循環。 |
protected abstract void |
enqueueKeyEvents(long after,
Component untilFocused)
在指定的 Component 成為焦點所有者以前由 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()
聚焦當前焦點所有者之後的 Component。 |
abstract void |
focusNextComponent(Component aComponent)
聚焦 aComponent 之後的 Component,通常基於 FocusTraversalPolicy。 |
void |
focusPreviousComponent()
聚焦當前焦點所有者之前的 Component。 |
abstract void |
focusPreviousComponent(Component aComponent)
聚焦 aComponent 之前的 Component,通常基於 FocusTraversalPolicy。 |
Window |
getActiveWindow()
如果活動 Window 與調用執行緒位於同一個上下文中,則返回活動 Window。 |
Container |
getCurrentFocusCycleRoot()
如果當前焦點循環根與調用執行緒位於相同的上下文中,則返回當前焦點循環根。 |
static KeyboardFocusManager |
getCurrentKeyboardFocusManager()
返回調用執行緒上下文的當前 KeyboardFocusManager 實例。 |
Set<AWTKeyStroke> |
getDefaultFocusTraversalKeys(int id)
返回給定遍歷操作的預設焦點遍歷鍵的 Set。 |
FocusTraversalPolicy |
getDefaultFocusTraversalPolicy()
返回預設 FocusTraversalPolicy。 |
Window |
getFocusedWindow()
如果聚焦視窗與調用執行緒位於同一個上下文中,則返回聚焦視窗。 |
Component |
getFocusOwner()
如果焦點所有者與調用執行緒位於同一個上下文中,則返回該焦點所有者。 |
protected Window |
getGlobalActiveWindow()
返回活動 Window,即使調用執行緒處於活動 Window 之外的上下文中。 |
protected Container |
getGlobalCurrentFocusCycleRoot()
返回當前焦點循環根,即使調用執行緒處於當前焦點循環根之外的上下文中。 |
protected Window |
getGlobalFocusedWindow()
返回聚焦 Window,即使調用執行緒處於聚焦 Window 之外的上下文中。 |
protected Component |
getGlobalFocusOwner()
返回焦點所有者,即使調用執行緒處於焦點所有者之外的上下文中。 |
protected Component |
getGlobalPermanentFocusOwner()
返回持久焦點所有者,即使調用執行緒處於該持久焦點所有者之外的上下文中。 |
protected List<KeyEventDispatcher> |
getKeyEventDispatchers()
作為 List 返回此 KeyboardFocusManager 的 KeyEventDispatcher 鏈。 |
protected List<KeyEventPostProcessor> |
getKeyEventPostProcessors()
作為 List 返回此 KeyboardFocusManager 的 KeyEventPostProcessor 鏈。 |
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 的焦點遍歷鍵時,此方法啟動焦點遍歷操作。 |
void |
redispatchEvent(Component target,
AWTEvent e)
重新指派 AWTEvent 的方式是,AWT 事件排程程序不會遞歸式請求 KeyboardFocusManager 或任何已安裝的 KeyEventDispatcher 再次指派該事件。 |
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)
設置活動 Window。 |
void |
setGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot)
設置當前焦點循環根。 |
protected void |
setGlobalFocusedWindow(Window focusedWindow)
設置聚焦 Window。 |
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 |
欄位詳細資訊 |
---|
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)
,
常數欄位值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)
,
常數欄位值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)
,
常數欄位值public static final int DOWN_CYCLE_TRAVERSAL_KEYS
setDefaultFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>)
,
getDefaultFocusTraversalKeys(int)
,
Component.setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>)
,
Component.getFocusTraversalKeys(int)
,
常數欄位值建構子詳細資訊 |
---|
public KeyboardFocusManager()
方法詳細資訊 |
---|
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 調用的不是執行緒上下文的當前 KeyboardFocusManagergetFocusOwner()
,
setGlobalFocusOwner(java.awt.Component)
protected void setGlobalFocusOwner(Component focusOwner)
此方法實際上沒有將焦點設置為指定的 Component。它只存儲該值,以便以後由 getFocusOwner()
返回它。更改焦點所有者需要使用 Component.requestFocus()
或 Component.requestFocusInWindow()
,具體的使用因平臺而異。
focusOwner
- 焦點所有者getFocusOwner()
,
getGlobalFocusOwner()
,
Component.requestFocus()
,
Component.requestFocusInWindow()
,
Component.isFocusable()
public void clearGlobalFocusOwner()
requestFocus()
為 Component 顯式分派焦點之前,本機視窗作業系統將放棄所有使用者產生的 KeyEvent。此操作不改變聚焦或啟動狀態的 Window。
Component.requestFocus()
,
FocusEvent.FOCUS_LOST
public Component getPermanentFocusOwner()
getGlobalPermanentFocusOwner()
,
setGlobalPermanentFocusOwner(java.awt.Component)
protected Component getGlobalPermanentFocusOwner() throws SecurityException
如果此 KeyboardFocusManager 調用的不是執行緒上下文的當前 KeyboardFocusManager,則此方法將拋出 SecurityException。
SecurityException
- 如果此 KeyboardFocusManager 調用的不是執行緒上下文的當前 KeyboardFocusManagergetPermanentFocusOwner()
,
setGlobalPermanentFocusOwner(java.awt.Component)
protected void setGlobalPermanentFocusOwner(Component permanentFocusOwner)
此方法實際上沒有將焦點設置為指定的 Component。它只存儲該值,以便以後由 getPermanentFocusOwner()
返回它。更改焦點所有者需要使用 Component.requestFocus()
或 Component.requestFocusInWindow()
,因平臺而異。
permanentFocusOwner
- 持久焦點所有者getPermanentFocusOwner()
,
getGlobalPermanentFocusOwner()
,
Component.requestFocus()
,
Component.requestFocusInWindow()
,
Component.isFocusable()
public Window getFocusedWindow()
getGlobalFocusedWindow()
,
setGlobalFocusedWindow(java.awt.Window)
protected Window getGlobalFocusedWindow() throws SecurityException
如果此 KeyboardFocusManager 調用的不是執行緒上下文的當前 KeyboardFocusManager,則此方法將拋出 SecurityException。
SecurityException
- 如果此 KeyboardFocusManager 調用的不是執行緒上下文的當前 KeyboardFocusManagergetFocusedWindow()
,
setGlobalFocusedWindow(java.awt.Window)
protected void setGlobalFocusedWindow(Window focusedWindow)
此方法不能實際更改與本機視窗作業系統相關的聚焦 Window。它只存儲該值,以便以後由 getFocusedWindow()
返回它。更改聚焦 Window 需要使用 Component.requestFocus()
或 Component.requestFocusInWindow()
,因平臺而異。
focusedWindow
- 聚焦 WindowgetFocusedWindow()
,
getGlobalFocusedWindow()
,
Component.requestFocus()
,
Component.requestFocusInWindow()
,
Window.isFocusableWindow()
public Window getActiveWindow()
getGlobalActiveWindow()
,
setGlobalActiveWindow(java.awt.Window)
protected Window getGlobalActiveWindow() throws SecurityException
如果此 KeyboardFocusManager 調用的不是執行緒上下文的當前 KeyboardFocusManager,則此方法將拋出 SecurityException。
SecurityException
- 如果此 KeyboardFocusManager 調用的不是執行緒上下文的當前 KeyboardFocusManagergetActiveWindow()
,
setGlobalActiveWindow(java.awt.Window)
protected void setGlobalActiveWindow(Window activeWindow)
此方法不能實際更改與本機視窗作業系統相關的活動 Window。它只存儲該值,以便以後由 getActiveWindow()
返回它。更改活動 Window 需要使用 Component.requestFocus()
或 Component.requestFocusInWindow()
,因平臺而異。
activeWindow
- 活動 WindowgetActiveWindow()
,
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 為 nullgetDefaultFocusTraversalPolicy()
,
Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)
,
Container.getFocusTraversalPolicy()
public void setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
Set
對沒有顯式定義自己的這種 Set
的所有 Window
均有效。對於沒有顯式定義自己的這種 Set
的 Windows
而言,此 Set
還可以由其子 Component
遞歸式繼承。
預設焦點遍歷鍵的預設值是依賴於實作的。Sun 建議特定本機平臺的所有實作都使用相同的預設值。下面列出了對 Windows 和 Unix 的建議。這些建議用於 Sun AWT 實作中。
標識符 | 意義 | 預設值 |
---|---|---|
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS |
正常向前鍵盤遍歷 | TAB on KEY_PRESSED , CTRL-TAB on KEY_PRESSED |
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS |
正常反向鍵盤遍歷 | SHIFT-TAB on KEY_PRESSED , CTRL-SHIFT-TAB on KEY_PRESSED |
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS |
向上一個焦點遍歷循環 | none |
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS |
向下一個焦點遍歷循環 | none |
Set
;建議使用 Collections.EMPTY_SET
。
使用 AWTKeyStroke
API,客戶端程式碼可以指定在兩個特定 KeyEvent
的哪一個上進行焦點遍歷,KEY_PRESSED
還是 KEY_RELEASED
。不管指定哪一個 KeyEvent
,所有與焦點遍歷鍵相關的 KeyEvent
(包括關聯的 KEY_TYPED
事件)都將被使用,不會將其指派給任何 Component
。將 KEY_TYPED
事件指定為映射為焦點遍歷操作或將同一事件映射為多個預設焦點遍歷操作都是運行時錯誤。
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
和 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
其中之一keystrokes
- 指定操作的 AWTKeyStroke
Set
IllegalArgumentException
- 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
和 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
其中之一,或者擊鍵為 null
,或者擊鍵包含 null
,或者擊鍵中的任何 Object
不是 AWTKeyStroke
,或者擊鍵表示 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 其中之一
AWTKeyStroke
Set
;該 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()
此方法僅供 KeyboardFocusManager 和焦點實作使用。一般客戶端不能使用。
getGlobalCurrentFocusCycleRoot()
,
setGlobalCurrentFocusCycleRoot(java.awt.Container)
protected Container getGlobalCurrentFocusCycleRoot() throws SecurityException
如果此 KeyboardFocusManager 調用的不是執行緒上下文的當前 KeyboardFocusManager,則此方法將拋出 SecurityException。
SecurityException
- 如果此 KeyboardFocusManager 調用的不是執行緒上下文的當前 KeyboardFocusManagergetCurrentFocusCycleRoot()
,
setGlobalCurrentFocusCycleRoot(java.awt.Container)
public void setGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot)
此方法僅供 KeyboardFocusManager 和焦點實作使用。一般客戶端不能使用。
newFocusCycleRoot
- 新焦點循環根getCurrentFocusCycleRoot()
,
getGlobalCurrentFocusCycleRoot()
public void addPropertyChangeListener(PropertyChangeListener listener)
listener
- 要添加的 PropertyChangeListenerremovePropertyChangeListener(java.beans.PropertyChangeListener)
,
getPropertyChangeListeners()
,
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public void removePropertyChangeListener(PropertyChangeListener listener)
如果偵聽器為 null,則不拋出異常,也不執行任何動作。
listener
- 要移除的 PropertyChangeListeneraddPropertyChangeListener(java.beans.PropertyChangeListener)
,
getPropertyChangeListeners()
,
removePropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public PropertyChangeListener[] getPropertyChangeListeners()
PropertyChangeListener
;如果目前沒有註冊任何屬性更改偵聽器,則返回空陣列addPropertyChangeListener(java.beans.PropertyChangeListener)
,
removePropertyChangeListener(java.beans.PropertyChangeListener)
,
getPropertyChangeListeners(java.lang.String)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
propertyName
- 上面列出的屬性名之一listener
- 要添加的 PropertyChangeListeneraddPropertyChangeListener(java.beans.PropertyChangeListener)
,
removePropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
,
getPropertyChangeListeners(java.lang.String)
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
如果偵聽器為 null,則不拋出異常,也不執行任何動作。
propertyName
- 有效屬性名listener
- 要移除的 PropertyChangeListeneraddPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
,
getPropertyChangeListeners(java.lang.String)
,
removePropertyChangeListener(java.beans.PropertyChangeListener)
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
PropertyChangeListener
組成的陣列。
PropertyChangeListener
;如果沒有添加過這樣的偵聽器,則返回空陣列。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
- 要添加的 VetoableChangeListenerremoveVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners()
,
addVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
public void removeVetoableChangeListener(VetoableChangeListener listener)
如果偵聽器為 null,則不拋出異常,也不執行任何動作。
listener
- 要移除的 VetoableChangeListeneraddVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners()
,
removeVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
public VetoableChangeListener[] getVetoableChangeListeners()
VetoableChangeListener
;如果目前沒有註冊任何可否決更改偵聽器,則返回空陣列addVetoableChangeListener(java.beans.VetoableChangeListener)
,
removeVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners(java.lang.String)
public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener)
propertyName
- 上面列出的屬性名之一listener
- 要添加的 VetoableChangeListeneraddVetoableChangeListener(java.beans.VetoableChangeListener)
,
removeVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners()
public void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener)
如果偵聽器為 null,則不拋出異常,也不執行任何動作。
propertyName
- 有效屬性名listener
- 要移除的 VetoableChangeListeneraddVetoableChangeListener(java.beans.VetoableChangeListener)
,
getVetoableChangeListeners()
,
removeVetoableChangeListener(java.beans.VetoableChangeListener)
public VetoableChangeListener[] getVetoableChangeListeners(String propertyName)
VetoableChangeListener
組成的陣列。
VetoableChangeListener
;如果沒有添加過這樣的偵聽器,則返回空陣列。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)
dispatchKeyEvent
方法返回 true
,通知就會暫停。可以添加的 KeyEventDispatcher 的總數沒有限制,添加特定 KeyEventDispatcher 實例的次數也沒有限制。
如果指定了 null 指派程序,則不執行動作也不拋出異常。
在多執行緒應用程序中,KeyEventDispatcher
的行為與其他 AWT 偵聽器相同。有關更多詳細資訊,請參閱 AWT 執行緒問題。
dispatcher
- 要添加到指派程序鏈的 KeyEventDispatcherremoveKeyEventDispatcher(java.awt.KeyEventDispatcher)
public void removeKeyEventDispatcher(KeyEventDispatcher dispatcher)
addKeyEventDispatcher
顯式重新註冊的。
如果指定了 null 排程程序,指定的排程程序沒有位於排程程序鏈中,或者此 KeyboardFocusManager 不是通過顯式重新註冊指定的,則不執行動作也不拋出異常。
在多執行緒應用程序中,KeyEventDispatcher
的行為與其他 AWT 偵聽器相同。有關更多詳細資訊,請參閱 AWT 執行緒問題。
dispatcher
- 要從排程程序鏈中移除的 KeyEventDispatcheraddKeyEventDispatcher(java.awt.KeyEventDispatcher)
protected List<KeyEventDispatcher> getKeyEventDispatchers()
addKeyEventDispatcher
顯式重新註冊的。如果沒有註冊其他 KeyEventDispatcher,則實作隨意返回 null 或長度為 0 的 List。客戶端程式碼不應假定某種行為多於其他行為,也不應假定建立行為後不能更改。
addKeyEventDispatcher(java.awt.KeyEventDispatcher)
,
removeKeyEventDispatcher(java.awt.KeyEventDispatcher)
public void addKeyEventPostProcessor(KeyEventPostProcessor processor)
postProcessKeyEvent
方法返回 true
,通知就會暫停。可以添加的 KeyEventPostProcessors 的總數沒有限制,添加特定 KeyEventPostProcessor 實例的次數也沒有限制。
如果指定了 null 後處理器,則不執行動作也不拋出異常。
在多執行緒應用程序中,KeyEventPostProcessor
的行為與其他 AWT 偵聽器相同。有關更多詳細資訊,請參閱 AWT 執行緒問題。
processor
- 要添加到後處理器鏈的 KeyEventPostProcessorremoveKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
public void removeKeyEventPostProcessor(KeyEventPostProcessor processor)
addKeyEventPostProcessor
添加的其他參考。
如果指定了 null 後處理器,指定的後處理器沒有位於後處理器鏈中,或者此 KeyboardFocusManager 不是通過顯式添加指定的,則不執行動作也不拋出異常。
在多執行緒應用程序中,KeyEventPostProcessor
的行為與其他 AWT 偵聽器相同。有關更多詳細資訊,請參閱 AWT 執行緒問題。
processor
- 要從後處理器鏈中移除的 KeyEventPostProcessoraddKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
protected List<KeyEventPostProcessor> getKeyEventPostProcessors()
addKeyEventPostProcessor
顯式添加的。如果沒有註冊任何 KeyEventDispatcher,則實作隨意返回 null 或長度為 0 的 List。客戶端程式碼不應假定某種行為多於其他行為,也不應假定建立行為後不能更改。
addKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
,
removeKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
public abstract boolean dispatchEvent(AWTEvent e)
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
的客戶端實作和客戶端定義的 KeyEventDispatcher 必須調用 redispatchEvent(target, e)
而不是調用 target.dispatchEvent(e)
來指派事件。
此方法僅供 KeyboardFocusManager 和 KeyEventDispatcher 使用。一般客戶端不能使用。
target
- 應將事件指派到的 Componente
- 要指派的事件dispatchEvent(java.awt.AWTEvent)
,
KeyEventDispatcher
public abstract boolean dispatchKeyEvent(KeyEvent e)
dispatchEvent
將調用此方法。如果此方法的實作返回 false
,則 dispatchEvent
可能試圖指派 KeyEvent 本身,或者可能簡單地返回 false
。如果返回 true
,則 dispatchEvent
也應該返回 true
。
KeyEventDispatcher
中的 dispatchKeyEvent
e
- 當前 KeyboardFocusManager 已經請求此 KeyEventDispatcher 指派的 KeyEvent
true
;否則,返回 false
dispatchEvent(java.awt.AWTEvent)
public abstract boolean postProcessKeyEvent(KeyEvent e)
dispatchKeyEvent
將調用此方法。預設情況下,此方法將通過使用該事件並啟動快捷方式來處理映射到 AWT MenuShortcut
的所有未使用的 KeyEvent。
KeyEventPostProcessor
中的 postProcessKeyEvent
e
- 要後處理的 KeyEvent
true
,指示任何其他 KeyEventPostProcessor 都將得不到該 KeyEvent 的通知。dispatchKeyEvent(java.awt.event.KeyEvent)
,
MenuShortcut
public abstract void processKeyEvent(Component focusedComponent, KeyEvent e)
focusedComponent
- 指定的事件表示其焦點遍歷鍵時,將成為焦點遍歷操作基礎的 Componente
- 可能表示焦點遍歷鍵的事件protected abstract void enqueueKeyEvents(long after, Component untilFocused)
dequeueKeyEvents
或 discardKeyEvents
取消延遲請求以前,KeyboardFocusManager 負責延遲指派時間戳晚於指定時間戳的 KeyEvent。
after
- 當前事件的時間戳,如果當前事件沒有時間戳或者 AWT 無法確定目前正在處理哪個事件,則為當前系統時間untilFocused
- 掛起 KeyEvent 之前應該接收 FOCUS_GAINED 事件的 ComponentdequeueKeyEvents(long, java.awt.Component)
,
discardKeyEvents(java.awt.Component)
protected abstract void dequeueKeyEvents(long after, Component untilFocused)
enqueueKeyEvents
而加入佇列的 KeyEvent,以將它們正常指派給當前焦點所有者。如果給定的時間戳小於零,則應該取消具有 oldest 時間戳的給定 Component 的未處理排隊請求(如果有)。
after
- 在對 enqueueKeyEvents
的調用中指定的時間戳,或者任何小於 0 的值untilFocused
- 在對 enqueueKeyEvents
的調用中指定的 ComponentenqueueKeyEvents(long, java.awt.Component)
,
discardKeyEvents(java.awt.Component)
protected abstract void discardKeyEvents(Component comp)
enqueueKeyEvents
而加入佇列 KeyEvent。
comp
- 對 enqueueKeyEvents
的一次或多次調用中指定的 ComponentenqueueKeyEvents(long, java.awt.Component)
,
dequeueKeyEvents(long, java.awt.Component)
public abstract void focusNextComponent(Component aComponent)
aComponent
- 作為焦點遍歷操作基礎的 ComponentFocusTraversalPolicy
public abstract void focusPreviousComponent(Component aComponent)
aComponent
- 作為焦點遍歷操作基礎的 ComponentFocusTraversalPolicy
public abstract void upFocusCycle(Component aComponent)
aComponent
- 作為焦點遍歷操作基礎的 Componentpublic abstract void downFocusCycle(Container aContainer)
aContainer
- 作為焦點遍歷操作基礎的 Containerpublic final void focusNextComponent()
public final void focusPreviousComponent()
public final void upFocusCycle()
public final void downFocusCycle()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。