スイングプログラムでは、キーバインディングを使用して、キーボードの数字パッドキーから特に入力を受信しようとしています。
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ロックがオンになっていないと、キーボードでnumPad8アクションが呼び出されません(実際、代わりにKeyEvent.VK_UPが生成されるようです)。KeyEventのドキュメントでは、KeyEvent.VK_UPが次のように指定されているため、これは私にとって驚くべきことです。
テンキー以外の上矢印キーの定数。
およびKeyEvent.VK_KP_UP
テンキーの上矢印キーの定数。
だから私の質問は:コードができるだけ多くのキーボード設定をサポートするようにしたい場合、numパッドからどのKeyEventsを期待する必要がありますか?たとえば、上記にKeyEvent.VK_8を追加する必要がありますか?