Estou desenvolvendo uma aplicação com javafx e preciso criar uma mascara para o cpf.
Estou implementando, já que não encontrei pronto.
Minha duvida é o seguinte, tem com ao capturar um KeyEvent, eu ignorar/desfazer o evendo de forma que ele não tenha ação sobre o
TextField, caso não seja um numero?
Minha solução atual remove os caracteres que não não numeros na hora que são inseridos, mas isso é ruim pra usabilidade, já que
a letra aparece de some imediatamente.
TextFieldfield=newTextField(){@OverridepublicvoidreplaceText(intstart,intend,Stringtext){// If the replaced text would end up being invalid, then simply// ignore this call!if(!text.matches("[0-9]")){super.replaceText(start,end,text);}}@OverridepublicvoidreplaceSelection(Stringtext){if(!text.matches("[0-9]")){super.replaceSelection(text);}}};
Eu vi isso aí nas minhas pesquisas. Porém, eu uso FXML, então sobrescrever não é uma boa ideia.
Eu não queria filtrar assim, queria ignorar a tecla.
V
viniciusmaboni
Consegui solucionar o problema.
O segredo esta nos EventHandlers, é possivel adicionar filtros neles para as mais variada situações (aprendi isso hoje)
Vou mostrar meu exemplo de codigo que soluciona o problema: