我编写了代码,用于检测已按下的键。
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
String name = KeyEvent.getKeyText(code);
tArea.append(name + " pressed\n");
}
此代码工作正常。但是在我的键盘上,这是一个圆圈,可用于停止播放媒体播放的歌曲,启动歌曲(并暂停歌曲),更改为下一首歌曲,然后返回上一首歌曲。许多键盘都有这个按钮。 但是当我按下这个圆圈中的一个按钮时,它会说:
Unknown keycode: 0x0 pressed
。
我有办法获得这把钥匙吗?我需要知道它是什么,因为我正在编写一个应该自动按下这些键的程序。
提前致谢
答案 0 :(得分:3)
您需要使用getExtendedKeyCode()
方法来掌握这些关键事件。
请注意,the Javadoc表示您未能获得KEY_TYPED
个活动,但只有KEY_PRESSED
和KEY_RELEASED
,因为KEY_TYPED
适用于可以转换为Unicode字符的内容,这可以是
如果扩展密钥代码仍然不足以识别您正在按下的内容,则您需要求助于KeyEvent
中出现的扫描代码,但不会可以访问,因为它是一个私人领域。 this answer中有一点很好的反射魔法可以让你获得扫描码。
This list of key codes可能会对您有所帮助。你正在处理"不可映射的事情。列表。