Hola:
La forma más "general" de añadir Listeners es
Toolkit.getDefaultToolkit().addAWTEventListener(.. ..)
Lleva un entero de "máscara" para indicar a qué eventos quieres suscribirte, esta máscara son las constantes en
http://docs.oracle.com/javase/6/docs.../AWTEvent.html y tienes que combinarlas con un OR
Toolkit.getDefaultToolkit().addAWTEventListener(mi Listener, AWTEvent.MOUSE_EVENT_MASK | AWTEvent.KEY_EVENT_MASK)
Estos eventos son de más bajo nivel que por ejemplo el ActionListener, de hecho, da igual a que te suscribas, le pasarás un AWTEventListener y recibirás un AWTEvent, así que quizás tendrás que analizar el evento que recibes un poco más (ver si es de teclado, de ratón, de action, de qué componente, etc, etc)
Se bueno