2

スイングプログラムでは、キーバインディングを使用して、キーボードの数字パッドキーから特に入力を受信しようとしています。

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を追加する必要がありますか?

4

0 に答える 0