Różnica między KeyBindings i KeyListeners

Jaki jest sens KeyBindings, jeśli możesz po prostu zrobić:

// Imports

public void Test {
    JButton button1;
    JButton button2;
    JButton button3;
    ...

    Test() {
        button1 = new JButton();
        button1.addKeyListener(this);

        button2 = new JButton();
        button2.addKeyListener(this);

        button3 = new JButton();
        button3.addKeyListener(this);

        ...
    }

    public void keyPressed(KeyEvent e) {
    }

    public void keyReleased(KeyEvent e) {
    }

    public void keyTyped(KeyEvent e) {

        Object src = e.getSource();

        if (src == button1) {
            ...
        }

        else if (src == button2) {
            ...
        }

        else if (src == button3) {
            ...
        }
        ...
    }
}

Powiedzmy, że mamdziesięć guziki. Następnie, jeśli użyjesz KeyBindings, będziesz musiał utworzyć osobne przypisanie klawiszy dla każdego przycisku. Czy przykład, który pokazałem, nie jest bardziej wydajny? Dlaczego nie?

questionAnswers(1)

yourAnswerToTheQuestion