3

我有一个KeyboardFocusManager带有覆盖的dispatchKeyEvent()方法来处理箭头键的导航并输入。只要按键被按下,我就需要处理按键事件。不幸的是,按住 enter 会导致KEY_TYPED不包含关键位置的事件。有没有办法找出当前正在按下哪个输入?或者我可以抑制KEY_TYPED事件以支持KEY_PRESSED事件吗?

编辑:我无法告诉您使用 KeyboardFocusManager 而不是 KeyListeners 完成的原因,但我确信这样做是有原因的。到目前为止,已经不可能再改变它了。问题是,对于我们的系统(一个旧的终端模拟器),左回车键是一个导航键。按下回车键将焦点移动到当前行之后的下一个文本字段。右回车键是将用户输入发送到服务器的命令键。

4

1 回答 1

3

使用How to Write a Key ListenerKeyEventDemo中的内容,我无法重现您为or描述的效果。当然,“事件没有一个”。KEY_PRESSEDKEY_RELEASEDKEY_TYPEDkeyLocation

目前尚不清楚为什么要使用Focus Listener,因为许多组件已经将某些键绑定到定义的Action. 该示例绑定了箭头键,这些箭头键响应由主机偏好调节的自动重复事件。

于 2012-06-19T18:09:52.633 回答