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

Capturar todos los focusLost - java

Estas en el tema de Capturar todos los focusLost - java en el foro de Java en Foros del Web. Que tal tengo un inconveniente, tengo una pantalla que dependiendo de lo seleccionado en un jcomboBox ejecuta un tab() este mismo hace que se activen ...
  #1 (permalink)  
Antiguo 26/09/2012, 11:27
 
Fecha de Ingreso: septiembre-2012
Ubicación: Baires
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Capturar todos los focusLost - java

Que tal tengo un inconveniente, tengo una pantalla que dependiendo de lo seleccionado en un jcomboBox ejecuta un tab() este mismo hace que se activen validaciones y habilita o inhabilita controles, lo que ocurre es que el foco se transfiere antes de esperar al metodo que inhabilita controles ( daria la sensacion que la transmicion de foco es asincronica). Hay alguna capturar todos los focusLost, ya que necesito que termine de validar para que resuelva bien cual es su proximo control para transmitirle el foco, espero haber sido lo mas claro posible, desde ya muchas gracias
  #2 (permalink)  
Antiguo 27/09/2012, 02:29
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Capturar todos los focusLost - java

Que yo sepa no puedes impedir que un componente pierda el foco y lo coja otro en el que el usuario hace click/tab. Lo que si puedes hacer en un focuslost es hacer que otro componente, el que tu quieras, pida el foco (requestFocus), de esta forma puedes guiarlo a donde tú quieras.

Lo que no tengo claro es si el combo es el que decide qué controles están o no activos, al seleccionar algo en el combo se debería ejecutar ese método y no hay focuslost por ningún sitio. ¿O al seleccionar en el combo no haces nada y esperas al focuslost para ejecutar tabs()?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 27/09/2012, 09:59
 
Fecha de Ingreso: septiembre-2012
Ubicación: Baires
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Capturar todos los focusLost - java

chuidiang desde ya gracias por tu respuesta, en el combo se selecciona un valor y al momento de hacer tab desde el teclado, o seleccionar un item con el mouse, en el evento changeStatus del combo, se empiezan a realizar las validaciones, se activan o desactivan los controles, al ocurrir esto, se esta validando y transmitiendo el foco al mismo tiempo, por lo que el foco por codigo, posee un control siguiente para transmitirle el foco, que por el metodo tarda unos microsegundos en activarse pero el foco no espera la finalizacion del metodo y se posiciona en el primer control proximo que pueda recibir foco, por eso decia que parecia asincronico.
  #4 (permalink)  
Antiguo 27/09/2012, 11:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Capturar todos los focusLost - java

Ok, ¿Por qué no ejecutas esas cosas al cambiar la opción del combo en vez de esperar a que el usuario cambi el foco?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 27/09/2012, 11:25
 
Fecha de Ingreso: septiembre-2012
Ubicación: Baires
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Capturar todos los focusLost - java

porque es una aplicación que se maneja integramente desde el teclado, entonces el usuario puede llegar a tabular y pasar por este combo el cual refresca, valida y refresca la pantalla, lo pense hacerlo desde el evento keypressed, osea al seleccionar un item del combo, pero el usuario puede pararse en el combo, elegir otro item y presionar tab lo cual no activaria el keypressed o el keyreleased, por eso la validacion se activa al perder el foco el jcombobox, por eso pensaba en poder definir algun tipo de oyente que capture todos los focusLost, para que antes de transmitir el foco, se habiliten los controles correspondientes y reciba el foco el mas proximo, pero bueno, quizas se tenga que replantear la funcionalidad, muchas gracias por tu ayuda
  #6 (permalink)  
Antiguo 27/09/2012, 12:05
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Capturar todos los focusLost - java

El evento se lanza cuando se ha perdido el foco, no antes. Yo creo que la única solución es que después de la pérdida de foco, hagas un requestFocus() del elemento que debe coger el foco.

En cualquier caso, Toolkit.getDefaultToolkit().addAWTEventListener(.. .) puedes añadir un listener como quieres, que captura todos los focuslost de todos los componentes. Pero como te comento, no creo tampoco que por ahí te avisen antes de que se pierda el foco.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 27/09/2012, 13:16
 
Fecha de Ingreso: septiembre-2012
Ubicación: Baires
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Capturar todos los focusLost - java

muchisimas gracias voy a probar eso que me pasaste. la verdad te agradezco por tus prontas respuestas y excelente predisposicion, saludos y mucha gracias

Etiquetas: asincronico, control, focus, gained, habilitar, inhabilitar, lost
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 01:30.