为什么KeyStroke.getKeyStroke('h').getKeyCode();
返回0?
例如:
import javax.swing.KeyStroke;
public class KeyStrokeTest {
public static void main(String[] args) {
KeyStroke keyStroke = KeyStroke.getKeyStroke('h');
System.out.println(keyStroke.getKeyCode());
}
}
输出:
0
我该如何解决?
最佳答案
此方法委派给AWTKeyStroke.getCachedStroke(keychar, VK_UNDEFINED, 0, false);
,这基本上意味着keyCode
设置为零。这样做是因为它不知道您可能还按下了什么,例如Shift,Ctrl等。
您可能正在寻找的方法是getKeyChar()
,它确实返回'h'
。
或者,您可以调用KeyStroke.getKeyStroke('h', 0)
,它将指定修饰符,因此将具有正确的KeyCode
值。