У меня есть JButton, который присоединен к ActionListener, но я также хотел добавить клавишу быстрого доступа к кнопке, чтобы сделать ее более удобной для пользователя.Скажем, пользователь может нажать кнопку, и программа выполняет некоторую функцию «f», или пользователь также может нажать «Enter» на клавиатуре, чтобы выполнить ту же функцию f.Итак, вот как выглядит суть моего кода
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
}
}
Кажется немного утомительным добавление Action и ActionListener для того же.Может быть, я не вижу этого, но есть ли способ сократить код, чтобы я мог устранить действие и просто использовать actionListener?Я думал о переключении параметра buttonListener в методе getActionMap (). Put (), но этот метод принимает только типы действий.