@FunctionalInterface public interface KeyEventDispatcher
请注意,KeyboardFocusManager本身实现了KeyEventDispatcher。 默认情况下,当前的KeyboardFocusManager将是注册的KeyEventDispatchers未发送的所有KeyEvent的接收器。 当前的KeyboardFocusManager不能被完全注销为KeyEventDispatcher。 但是,如果KeyEventDispatcher报告它分派了KeyEvent,无论是否实际执行此操作,KeyboardFocusManager将不再对KeyEvent执行任何操作。 (虽然客户端代码可以将当前的KeyboardFocusManager注册为KeyEventDispatcher一次或多次,但这通常是不需要的,不推荐使用。)
Modifier and Type | Method and Description |
---|---|
boolean |
dispatchKeyEvent(KeyEvent e)
此方法由当前的KeyboardFocusManager调用,请求此KeyEventDispatcher代表它分派指定的事件。
|
boolean dispatchKeyEvent(KeyEvent e)
redispatchEvent
以防止当前的KeyboardFocusManager递归地请求此KeyEventDispatcher再次分派该事件。
如果此方法的实现返回false
,则KeyEvent将传递到链中的下一个KeyEventDispatcher,以当前的KeyboardFocusManager结尾。 如果一个实现返回true
,则假定KeyEvent已被调度(尽管不需要这样),而且当前的KeyboardFocusManager将不再对KeyEvent进行任何操作。 在这种情况下, KeyboardFocusManager.dispatchEvent
也应该返回true
。 如果一个实现消耗了KeyEvent,但返回false
,那么消耗的事件仍将被传递给链中的下一个KeyEventDispatcher。 开发人员必须检查KeyEvent是否在将其分派到目标之前已被使用。 默认情况下,当前的KeyboardFocusManager将不会调度消耗的KeyEvent。
e
- 要发送的KeyEvent
true
如果KeyboardFocusManager对KeyEvent不应该采取进一步的操作;
false
否则
KeyboardFocusManager.redispatchEvent(java.awt.Component, java.awt.AWTEvent)