Los enlaces de teclas de Java no funcionan

Estoy tratando de hacer enlaces de teclas en Java en un JPanel. Quiero que se ejecute cierta acción cuando presiono el botón 'w'. Sigo el tutorial de Java sobre cómo hacer enlaces, pero el método actionPerformed no se ejecuta (es decir, no se imprime ningún texto). La siguiente es la totalidad del código para mi GUI de prueba, con la parte relevante resaltada:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;

@SuppressWarnings("serial")
public class Test extends JFrame{

private JPanel panel;

public Test(){
    super();
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(500,500);
    setLayout(new BorderLayout());
    setVisible(true);        
    panel = new JPanel();

    // HERE ARE THE KEY BINDINGS
    panel.getInputMap().put(KeyStroke.getKeyStroke('w'),"forward");
    panel.getActionMap().put("forward", new AbstractAction(){
        @Override
        public void actionPerformed(ActionEvent e){
            System.out.println("test");
        }
    });
    // END OF KEY BINDINGS

    add(panel, BorderLayout.CENTER);
}

public static void main(String[] args){
    new Test();     
}

}

El texto "prueba" nunca se imprime. He intentado muchas veces con diferentes variantes, diferentes teclas, y me aseguro de que el panel esté enfocado, pero no hay suerte. ¿Qué estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta