2

在一个摇摆程序中,我试图使用键绑定专门从键盘上的数字键盘键接收输入。

myPanel.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD8, 0), “numpad8”);
myPanel.getActionMap().put(“numpad8”, numPad8);

如果我按预期打开了数字锁定,则工作正常,但是如果我添加:

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

数字键盘向上箭头键的常量。

所以我的问题是:如果我希望我的代码支持尽可能多的键盘设置,我应该从数字键盘获得什么 KeyEvents?例如,我是否应该在上面添加 KeyEvent.VK_8 以确保安全?

4

0 回答 0