Foros del Web » Programación para mayores de 30 ;) » Java »

KeyListener en JPanel

Estas en el tema de KeyListener en JPanel en el foro de Java en Foros del Web. Buenas y Pura Vida tengo una cosulta que veo en muchos foros, pero no me sirve ninguna solucion de las que he encontrado, entonces quiero ...
  #1 (permalink)  
Antiguo 15/06/2012, 10:37
 
Fecha de Ingreso: mayo-2011
Mensajes: 44
Antigüedad: 13 años
Puntos: 2
KeyListener en JPanel

Buenas y Pura Vida
tengo una cosulta que veo en muchos foros, pero no me sirve ninguna solucion de las que he encontrado, entonces quiero saber si ustedes me la pueden resolver

yo tengo un JPanel donde tengo un juego de un laberinto
logicamente el muñeco se mueve con las flechas del teclado
pero resulta que el evento keylistener solo funciona si el JPanel,
el cual es el que escucha el evento, tiene el foco
entonces eso me genera un problema por que nunca tiene el foco

En internet me encontre dos soluciones, una era emular el evento TAB el cual le pasaria el foco a mi JPanel, pero esto solo sirve de vez en cuando

la otra era usar el metodo transferFocus(), pero este evento segur lei lo que hace es pasar el foco a el siguiente Objeto (Como TAB), el problema esta en que este metodo para que funcione se tiene que aplicar sobre el Objeto que tiene el foco, y he buscado usando isFocus() en todo el arbol de containers que tiene mi JFrame y no encuentro ninguno con el foco

Espero que puedan ayudarme, gracias
  #2 (permalink)  
Antiguo 17/06/2012, 10:18
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: KeyListener en JPanel

Lo que se me ocurre es replicar la forma en la que funcionan los eventos en HTML. Donde al hacer clic en un componente, el evento va pasando desde el componente hasta la raiz del DOM donde cada componente tiene la oportunidad de manejar el evento. A esto se le llama Event Bubbling.
Sin embargo, Swing no funciona de esta manera. Por lo que tendrias que aplicar tu propia logica para que pase esto
http://stackoverflow.com/a/3605990/1126579
  #3 (permalink)  
Antiguo 29/06/2012, 01:20
 
Fecha de Ingreso: mayo-2011
Mensajes: 44
Antigüedad: 13 años
Puntos: 2
Respuesta: KeyListener en JPanel

la verdad medio probe tu idea pero no me funko y no quise quemarme la cabeza con algo complicado entonces lo resolvi de maner facil a como pude

lo que hice fue un JButton, el cual el usuario tenia que presionar antes de entrar al juego del laberinto y dentro del action listener le digo que transferFocus(), el cual es un metodo que le pasa al foco al siguiente en la lista que trae por defecto de java (siluma el efecto del TAB)
pero para que este sirva el metodo, componente tienen que tener el foco
y el componente a quien quieras pasarselo ya tiene que estar creado y ser el siguiente en la lista de focus

Etiquetas: focus, jpanel, keylistener
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:58.