Adicionar associações de teclas aos JButtons que obtêm suas ações a partir de comandos de ação?

Encontrei uma maneira interessante em outra pergunta para criar um JButton cujas ações são escritas e visualizadas de uma maneira fácil:

public JButton makeToolbarButton(String title, String actionCommand) {
    JButton button = new JButton(title);
    button.setActionCommand(actionCommand);
    button.addActionListener(this);
    return button;
}

A classe em que esse método está implementa o ActionListener e os comandos dos botões são atribuídos por:

public void actionPerformed(ActionEvent e) {
    int action = Integer.parseInt(e.getActionCommand());
    switch(action) {
        case 1:
            System.out.println("This button pressed.");
        break;
    }
}

E os botões são feitos por:

    JButton button1 = makeToolbarButton("Button 1", "1");

Portanto, minha pergunta é: posso adicionar KeyStrokes a um botão por esse método? Eu tentei algo assim (dentro domakeToolbarButton método):

    button.getInputMap().put(KeyStroke.getKeyStroke("B"), "button_pressed");
    button.getActionMap().put("button_pressed", button.getAction());

Mas acho que isso não funciona porque o comando action não está realmente atribuindo uma ação a um botão específico. Existe uma maneira de adicionar algo aomakeToolbarButton() método e um parâmetro para o KeyStroke fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion