Componente que capture todos los eventos

Carlos
22 de Noviembre del 2005
Buenas,

estoy intentando desarrollar una aplicación de escritorio con java y me enfrento a la siquiente problematica.
Tengo la necesidad de capturar un evento (x ejemplo pulsacion de una tecla (key released) pero necesito que el evento se capture independientemente del componente que en ese momento tenga el foco. No se si me explico. Imaginemos una situación. Tenemos un internal frame con unos controles (x ejempolo labels, combos, textbox...) y queremos que cuando se pulse una tecla se ejecute una accion. En el momento de pulsar la tecla el foco puede estar en cualquier componente de los anteriores, o incluso en la barra de herramientas o el menú de la aplicación, pero la accion, tras pulsar la tecla, se tiene que ejecutar. Logicamente se puden poner "escuchadores" de eventos a todos los componentes que en un momento dado puedan tener el foco, pero me parece una "locura computacional".

Si alguien me puede ayudar, gracias de antemano!!

Carlos
22 de Noviembre del 2005
Ok, ya lo tengo.

Toolkit.getDefaultToolkit().addAWTEventListener( new AWTEventListener()
{
public void eventDispatched(AWTEvent e)
{
System.out.println(e);
}
}, AWTEvent.KEY_EVENT_MASK);

Con añadir ese codigo en el constructor de la clase principal ha sigo suficiente. Va de luxe!!