The simplest solution, and generally the more powerful, would be to use the key bindings API
The main problem with KeyListener
is that is focus contextual. That is, the component it is registered to must be focusable AND have focus before it will raise key events