ActionListenerに接続されたJButtonがありますが、ボタンにショートカットキーを追加してユーザーフレンドリーにしたいと考えていました。ユーザーがボタンをクリックすると、プログラムが何らかの機能 "f"を実行するか、またはユーザーがキーボードの "Enter"を押して同じ機能を実行することができます。だからここアクションリスナーと同じアクションを実行するキーバインディングの設定
private JButton button;
public static void main(String[] args){
Action buttonListener = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
//Perform function f
}
};
button.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ENTER"),
"test");
button.getActionMap().put("test",
buttonListener);
button.addActionListener(new OtherListener());
}
private class OtherListener implements ActionListener{
public void actionPerformed(ActionEvent e){
//Perform function f
}
}
アクションと同じことを行うためにActionListenerを追加する必要が少し退屈に思えるように私のコードの要旨は見えるものです。たぶん私はそれを見ていないだろうが、アクションを排除し、ちょうどactionListenerを使用することができるようにコードをカットする方法はありますか?私は、getActionMap()。put()メソッドのbuttonListenerパラメータを切り替えることを考えていましたが、メソッドはAction型のみを受け取ります。
完璧、ありがとう – oipsl