tjb*_*300 5 java key-events awt keylistener
我正在用Java编写旧机器的模拟,我希望我的键盘处理能够SHIFT独立地处理左键和右键.
我有一个标准的AWT KeyListener注册并处理KeyPressed()和KeyReleased()方法.这是问题所在:
1) Press Left-SHIFT
-> get KeyPressed() for VK_SHIFT with location=LEFT ... good!
2) Keep Left-SHIFT held down, press Right-SHIFT too
-> get KeyPressed() for VK_SHIFT with location=RIGHT ... good!
3) Release Right-SHIFT (left-SHIFT still held down)
-> get ... absolutely nothing ... bad!
4) Release Left-SHIFT
-> get KeyReleased() for VK_SHIFT with location=LEFT ... good.
Run Code Online (Sandbox Code Playgroud)
所以,我丢失了正确的KeyReleased()信息SHIFT.在Windows上运行时,这会以这种方式失败,但在Linux上正常工作(我看到所有事件).有任何想法吗?这只是我不得不忍受的Windows异常吗?奇怪的是,这两个Ctrl键并没有像这样失败- 我希望看到所有事件.
使用标准Sun KeyEventDemo.java程序很容易重现此行为.
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |