[RESOLVIDO] Problemas com o Focus Event - JavaFX

Tenho o seguinte fragmento de código que funciona QUASE que perfeitamente:

    this.txtMensalid.focusedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed (ObservableValue<? extends Boolean> arg0, Boolean oldPropertyValue, Boolean newPropertyValue)  {

              if (!txtMensalid.getText().isBlank()){
                  //AvisoSimples("OPS", "OPS", "VALOR DA MENSALIDADE: " + txtMensalid.getText());
                  String mensalidade = (txtMensalid.getText());
                  txtMensalid.setText(MascaraDinheiro (mensalidade, DINHEIRO_REAL));
              }

         }                                          
    });

Minha intenção é que o código seja executado quando PERDER O FOCO do textfield. Porém o código também é executado quando o textfield GANHA FOCO.

Creio que seja algum detalhe, alguma pequena alteração nesse código, que eu não esteja observando.

Alguém pode me dar essa dica?

(DETALHE: estou usando JavaFX).

Agradeço, antecipadamente.

Importante*

Sempre que você enviar códigos aqui para o fórum formate-o, selecione ele todo e clique em </>

image

Ou faça assim

```java
    código aqui
```

Já tentou isso?

txtMensalid.focusedProperty().addListener((obs, oldVal, newVal) -> 
    System.out.println(newVal ? "Ganhou Foco" : "Perdeu Foco")); 
    //esse código de cima é a msm coisa que isso::

    if(newVal){
       System.out.println("Ganhou o Foco");
    } else {
       System.out.println("Perdeu o Foco");
    }
});
1 curtida

MUITO obrigado, por AMBAS as informações @rodriguesabner!

O código funciona, agora.

E quanto às tags, eu sempre tentava colocar “na mão” ( /code … code/ ). Não sabia que tinha essa opção no menu. Passarei a usar.

:+1::+1::+1::+1::+1:

1 curtida