私は私のプログラムのすべてのボタンのショートカットをしたい場所にプログラムを作っています。たとえば、CTRL +実行ボタンは1ボタンのショートカットキー用のキーバインディングとアクションマップを使用して
は、私はまた、これらのショートカットが変更ユーザーになりたい
ので、これは私がこれらをしたいので、今
InputMap IM = component.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
IM.put(KeyStroke.getKeyStroke(KeyEvent.VK_B, InputEvent.CTRL_DOWN_MASK |
InputEvent.ALT_DOWN_MASK), "BUTTON ONE ID");
ActionMap actionMap = component.getActionMap();
actionMap.put("BUTTON ONE ID", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
actionListener.actionPerformed(e);
}
});
を結合キーを追加するために使用していたコードですユーザーが変更できるように、私はその情報を得るために3行目の "BUTTON ONE ID"を使用できるようにしたい。私はので、私は次のコード
if("BUTTON ONE ID"){
//print KeyEvent/keyCode info and if we need to hold ctrl, alt or shift?
//and then i want to be able to change the key bindings
}
を望む私はそれのために入力したキーやショートカットのため
をCtrlキーまたはAltキーを保持する必要があるかどうかを知ることができるようにしたいですどのように "BUTTON ONE ID"を使ってこれを行うのですか、これを行うより良い方法です。おかげで
を更新します。 'Action'の' actionPeformed'メソッドがトリガされると、あなたはそれを行います。あなたが変更したいと思うものは、アクションをトリガーするバインディングです – MadProgrammer
はい私はキーバインディングを変更できるようにしたいので、ユーザーが設定したデフォルトのものを使用しないでください。 – cmptUser
さて、キーストロークをキャプチャする方法を理解する必要があります。 2 - 既存のバインディングを削除します。 3新しいバインディングを追加します。あなたはすでにバインディングの作成方法を知っているので、3番目のステップは比較的単純なものにしてください。 – MadProgrammer