如何找到KEY_TYPED事件的输入位置?

时间:2012-06-19 13:53:37

标签: java swing keylistener

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

编辑: 我不能告诉你为什么用KeyboardFocusManager而不是KeyListeners完成它,但我确信它有这样做的原因。截至目前,不可能再改变这一点。问题是,对于我们的系统(旧的终端仿真器),左输入键是导航键。按Enter键会将焦点移动到当前行之后的下一个文本字段。右键是一个命令键,用于将用户输入发送到服务器。

1 个答案:

答案 0 :(得分:3)

使用How to Write a Key Listener中的KeyEventDemo,我无法重现您为KEY_PRESSEDKEY_RELEASED所描述的效果。当然,“KEY_TYPED个事件没有keyLocation。”

目前尚不清楚您使用Focus Listener的原因,因为许多组件已经bind定义了Action的某些键。 example绑定箭头键,它响应主机偏好调节的自动重复事件。