Olá JGalera!!!
Estou tentanto efetuar um cadatro de veículos para ser integrado a um sistema, sendo que no meu banco de dados a chave-primária da tabela onde os dados serão persistidos é a placa do veículo… tipo ABC-1243…
estou utilizando o seguinte código para implementar a máscara no meu JFrame:
....
mfplaca = new MaskFormatter();
mfplaca.setMask("UUU-####");
mfplaca.setPlaceholderCharacter('_');
mfplaca.setValidCharacters("ABCDEFGHIJKLMNOPQRSTUVXYWZ1234567890");
jftfplaca = new JFormattedTextField(mfplaca);
....
O bug é o seguinte… a campo sempre começa com -_, se preencher todos dos caracteres da máscara tudo ok… porém se informar o valor faltando um caracter o valor desse caracter terá como valor assumido o último valor digitado… isso abre margem para grandes problemas…
consegui fazer um tratamento através de um lostFocus() testando se ao sair do campo todos os caracteres foram digitados… porém não consigo llimpar o campo… tipo o usuário tenta passar para o próximo campo informando o valor incompleto… o tratamento joga um JOptionPane na tela dizendo “tá errado” … dá um grabFocus() no campo e mando limpar… porém o problema de pegar o caracter anterior continua…
me deram a solução de remover o JFormattedTextField e instanciar o JMaskFormatter novamente… mas não dá certo… (muito ruim essa solução)…
Estou olhando na documentação das APIs… procurando por um método que venha tratar esse problema…
Se alguém souber de alguma possível solução…
[]´s
Obrigado