Привязки клавиш Java не работают

Я пытаюсь сделать привязки клавиш в Java на JPanel. Я хочу, чтобы определенное действие выполнялось, когда я нажимаю 'w' кнопка. Я следую Java-уроку по созданию привязок, но метод actionPerformed не выполняется (то есть текст не печатается). Ниже приведен полный код моего тестового графического интерфейса с выделенной соответствующей частью:

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();     
}

}

Текст "тестовое задание" никогда не печатается. Я много раз пробовал с разными вариантами, разными клавишами, и я уверен, что панель в фокусе, но не повезло. Что я делаю неправильно?

Ответы на вопрос(1)

Ваш ответ на вопрос