Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/06/2012, 06:06
Avatar de UnaVezFuiPez
UnaVezFuiPez
 
Fecha de Ingreso: febrero-2012
Mensajes: 9
Antigüedad: 12 años, 2 meses
Puntos: 1
Pregunta ¿Cómo controlar la pérdida de foco de un elemento en JavaFX 2.X (.fxml)?

Buenos días, la duda es la siguiente:

Estoy haciendo un programa en Java empleando JavaFX 2.X y creando la ventana mediante FXML.

Tengo un 'TextField' en el que el usuario debe introducir un número (double). Al pulsar intro, el controlador de eventos 'onAction' llama a un método que en primer lugar sustituye las ',' por '.' y luego comprueba si la cadena introducida es un (double).

El problema es que si en vez de pulsar intro pulso tab, o con el ratón pincho en otro elemento de la ventana el controlador 'onAction' no se activa y no se comprueba si el texto introducido es un número o no.

He buscado información sobre si existe un controlador de eventos (en FXML) que controle la pérdida de foco de un elemento concreto, pero no he encontrado nada.

Entonces, ¿Cómo puedo hacer para controlar la perdida de foco de un elemento?

He encontrado el controlador 'onKeyPressed' que podría usar para comprobar si se ha pulsado el tabulador, pero me parece una solución un poco chapucera, ya que se comprueba cada pulsación de teclado y, aunque esto no suponga ningún problema en cuanto a pérdida de rendimiento, conceptualmente no es correcto.

Por otro lado, esta solución solo resuelve el problema del tabulador pero no la acción del ratón. Para esto último, ninguno de los controladores de eventos relacionados con el ratón tienen por qué activarse cuando ya se ha introducido el texto, con lo que a mi entender me quedo sin poder controlar este evento.

¿En serio FXML no tiene una forma directa de controlar que un elemento pierda el foco (deje de estar seleccionado)?

Muchas gracias por adelantado.