JavaTM 2 Platform
Standard Ed. 6

java.awt
介面 KeyEventDispatcher

所有已知實作類別:
DefaultFocusManager, DefaultKeyboardFocusManager, FocusManager, KeyboardFocusManager

public interface KeyEventDispatcher

在指派所有 KeyEvent 和為其確定目標時,KeyEventDispatcher 和當前 KeyboardFocusManager 一起使用。在當前 KeyboardFocusManager 中註冊的 KeyEventDispatcher 在 KeyEvent 被指派到目標前接收它們,允許每個 KeyEventDispatcher 重定向事件,使用它,指派事件本身,或者進行其他更改。

注意,KeyboardFocusManager 本身即可實作 KeyEventDispatcher。預設情況下,當前 KeyboardFocusManager 是已註冊 KeyEventDispatcher 未指派的所有 KeyEvent 的接受器。無法將當前 KeyboardFocusManager 作為 KeyEventDispatcher 完全註銷。但是,如果 KeyEventDispatcher 報告指派了 KeyEvent,則不管是否實際指派了,KeyboardFocusManager 都將不對 KeyEvent 進行進一步的操作。(儘管客戶端程式碼將當前的 KeyboardFocusManager 一次或多次註冊為 KeyEventDispatcher 是可能的,但通常不必要也不建議這樣做。)

從以下版本開始:
1.4
另請參見:
KeyboardFocusManager.addKeyEventDispatcher(java.awt.KeyEventDispatcher), KeyboardFocusManager.removeKeyEventDispatcher(java.awt.KeyEventDispatcher)

方法摘要
 boolean dispatchKeyEvent(KeyEvent e)
          當前 KeyboardFocusManager 調用此方法,請求此 KeyEventDispatcher 為其指派指定的事件。
 

方法詳細資訊

dispatchKeyEvent

boolean dispatchKeyEvent(KeyEvent e)
當前 KeyboardFocusManager 調用此方法,請求此 KeyEventDispatcher 為其指派指定的事件。此 KeyEventDispatcher 可以隨意重定向事件,使用它,指派它本身,或者進行其他更改。通常使用此功能將 KeyEvent 傳遞給 Component 而不是焦點所有者。例如,可以使用此功能在可存取環境中導航不可聚焦 Window 的子級。注意,如果 KeyEventDispatcher 指派 KeyEvent 本身,則其必須使用 redispatchEvent 來防止當前 KeyboardFocusManager 遞歸式請求此 KeyEventDispatcher 再次指派事件。

如果此方法的實作返回 false,則將 KeyEvent 傳入鏈中的下一個 KeyEventDispatcher,以當前的 KeyboardFocusManager 結尾。如果實作返回 true,則假定已經指派了該 KeyEvent(儘管事實不一定如此),當前 KeyboardFocusManager 將不對該 KeyEvent 進行任何進一步的操作。在此情況下,KeyboardFocusManager.dispatchEvent 也應該返回 true。如果實作使用 KeyEvent,但是返回 false,則仍將所使用的事件傳入鏈中的下一個 KeyEventDispatcher。開發人員在將 KeyEvent 指派到目標前首先檢查它是否已使用至關重要。預設情況下,當前 KeyboardFocusManager 不指派使用的 KeyEvent。

參數:
e - 要指派的 KeyEvent
返回:
如果 KeyboardFocusManager 不應對該 KeyEvent 進行進一步操作,則返回 true;否則,返回 false
另請參見:
KeyboardFocusManager.redispatchEvent(java.awt.Component, java.awt.AWTEvent)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only