KeyListeners よりも KeyBindings を使用する方が良いと読みました。KeyBinding が特定のキーに対する特定の反応に役立つことがわかりました。しかし、キーボードの任意のキーのプレス/リリースも検出しようとしています:KeyBindingsでこれを行う方法はありますか?
たとえば、通常は KeyBindings を使用して、次のように単一のキーを操作します。
InputMap iMap = component.getInputMap();
ActionMap aMap = component.getActionMap();
iMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter without modifiers");
aMap.put("enter without modifiers", new AbstractAction(){
public void actionPerformed(ActionEvent a){
System.out.println("Enter pressed alone");
});
だから私はキープレスを検出するためにこのようなことを考えています:
iMap.put(KeyStroke.getKeyStroke(KeyEvent.KEY_PRESSED, 0), "any key was pressed");
aMap.put("any key was pressed", new AbstractAction(){
public void actionPerformed(ActionEvent a){
System.out.println("some key was pressed, regardless of which key...");
});
これを達成する方法はありますか?
また、ANY修飾子の組み合わせでKeyBindingをキャッチする方法はありますか? たとえば、修飾子が保持されていない場合、または両方の ctrl-alt などの組み合わせが保持されている場合に関係なく、Enter アクションをマップするには?
どうもありがとう、ダン