マルチタブのフレームがあり、異なるタブの下にある特定のボタンへのショートカットを設定する必要がありますが、同じキーを使用する必要があります。例えば:
tab1 の下には、F1 キーに反応する「Do that」ボタンがありますが、tab2 に切り替える場合は、F1 ボタンにも反応する「Do this」ボタンが必要ですが、tab1 でのアクションは必要です。解雇されません。
タブ/キー/パネルに追加しようとしkeylistener
ましたが、それでも F1 キーを押すと、最初に実行されるアクションになります。
しかし、その理由は、次のような主要なイベントを制御するスイッチを使用しているためだと思いますcase KeyEvent.VK_F1:mybutton1.doclick();
では、異なるタブで個別に反応するアクションを分離するにはどうすればよいでしょうか? たとえば、フォーカスされたタブまたは他の何かを取得する方法はありますか?
よろしく。
編集:スイングアクションのコード:
private class SwingAction extends AbstractAction {
public SwingAction() {
putValue(NAME, "mybutton");
putValue(SHORT_DESCRIPTION, "Some short description");
}
public void actionPerformed(ActionEvent e) {
mybutton.getInputMap().put(KeyStroke.getKeyStroke("F1"),"pressed");
mybutton.getActionMap().put("pressed",mybutton.doClick());
}
}
私は得る:
ActionMap 型のメソッド put(Object, Action) は、引数 (String, void) エラーには適用できません (Java/Swing の初心者には申し訳ありません)。