Java - Problema con Key Events (Ramon)

 
Vista:

Problema con Key Events (Ramon)

Publicado por Ramon (2 intervenciones) el 21/04/2009 18:24:28
Buenas amigos, tengo un problema con los eventos que deben capturarse cuando un usuario presiona una tecla en una JInternalFrame.


La situacion es la siguiente:

------------------------------------

Tengo una JFrame la cual tiene adentro un JDesktopPane, y en esta ultima voy agregando las JInternalFrames. Deseo capturar el evento key pressed de alguna tecla y dependiendo de la tecla ejecuto una accion. Esto es para asociarle a cada boton de la ventana interna una tecla, por ejemplo: En la ventana interna de "clientes" le asocio la tecla "F1" al boton "nuevo cliente", el boton "F2" al boton "eliminar cliente" y asi sucesivamente.


Mi solucion fue la siguiente:

-----------------------------------

He capturado el evento "key pressed" sobre la JInternalFrame abierta y en base a la tecla presionada ejecuto la accion correspondiente al boton.


Mi problema es el siguiente:

-----------------------------------

El evento es capturado solo cuando el foco esta sobre la ventana interna. Cuando pierdo el foco sobre la InternalFrame, es decir, si presiono con el mouse en algun elemento de la ventana, no me detecta la tecla presionada y la idea planteada deja de funcionar, osea que luego de usar el mouse sobre la ventana interna pierdo el uso con el teclado....

He tratado solucionar esto volviendo a poner el foco sobre la ventana interna con el metodo "ventantanaClientes.setFocusable(true)" y funciona bien, pero la verdad esto es muy tedioso e incomodo porque tengo que controlar todas las veces que se pierde el foco en la ventana interna y volvero a poner sobre la misma.

***

He visto muchos sistemas que funcionan de esta manera (un boton asociado con una tecla, para no usar el mouse) pero no he podido lograr que funcione bien.

Me podrian decir otra forma de hacer esto???

(Si faltan datos o no se entiende por favor avisen)

Muchas Gracias.

Ramon.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder