下字符是俄语字符
KeyStroke.getKeyStroke('П', ActionEvent.CTRL_MASK).getKeyCode(); // returns (int) 1055
KeyStroke.getKeyStroke(1055, ActionEvent.CTRL_MASK); //returns (javax.swing.KeyStroke) ctrl pressed UNKNOWN
但适用于像“ C”这样的字符
KeyStroke.getKeyStroke('C', 2).getKeyCode(); // returns (int) 67
KeyStroke.getKeyStroke(67, ActionEvent.CTRL_MASK); //returns (javax.swing.KeyStroke) ctrl pressed C
正如它对于字符“ C”的显示方式一样,如何使它适用于俄语字符。
最佳答案
toString()
上的KeyStroke
方法是从
修饰符文本(ctrl,alt,...)
取决于onKeyRelease
标志是“释放”还是“按下”
与KeyEvent
(AWTKeyStroke.getVKText(keycode)
)中的常量相对应的VK(虚拟密钥)文本
您的代码一切都很好,在VK_
类中只有'П'键没有相应的KeyEvent
常量。有关所有可识别常量的列表,请参见KeyEvent Javadoc, Constants。
是否要提取与按下的键相对应的字符?
在这种情况下,请使用:
char c = (char) keyStroke.getKeyCode();