在摇摆程序中,我试图使用键绑定专门从键盘上的num pad键接收输入。
myPanel.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD8, 0), “numpad8”);
myPanel.getActionMap().put(“numpad8”, numPad8);
如果我打开了num锁,那就正常工作,这是预期的,但是如果我添加:
myPanel.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_KP_UP, 0), “numpad8”);
没有num lock,我的键盘不会导致调用numPad8 Action(实际上它似乎生成了KeyEvent.VK_UP)。这对我来说是令人惊讶的,因为KeyEvent的文档指定KeyEvent.VK_UP是
非小键盘向上箭头键的常量。
和KeyEvent.VK_KP_UP
数字小键盘向上箭头键的常量。
所以我的问题是:如果我希望我的代码能够支持尽可能多的键盘设置,那么我应该从num pad中得到什么KeyEvents?我应该将KeyEvent.VK_8添加到上面是否安全,例如?