vc pode usar um jformattedtextfield e usar mascara para fazer isso, ou então criar um Document (herdando de painDocument) e fazendo o tratamento dos caracteres manualmente…
Comecei trabalhando com JFormattedTextField, mas diante de algumas dificuldades, talvez por inexperiencia minha, optei por seguir os conselhos de outros colegas aqui do GUJ e estou usanto JTextField mesmo…
No caso de datas, numeros de telefone e CPF, por exemplo, criei classes que herdam de InputVerifier para fazer as validações e formatações.
E em cada objeto JTextField faço algo mais ou menos assim:
O meu problema agora é o seguinte:
Estou permitindo que o usuário digite, por exemplo, letras num campo data.
No momento que mudar o foco para outro objeto a minha classe vai criticar o dado digitado, mas queria que nem permitisse a digitação.
str eh a string que está sendo inserida, vc faz a validação nela por exemplo se ewh um numero, ae vc insere ele no JTextFiel chamando o metodo na class pai
Inicialmente muito obrigado pelas dicas… utilizar PlainDocument realmente funcionou certinho para limitar o tamanho do jTextField.
Agora, no caso de querer limitar também os caracteres digitados, por exemplo, só numeros, como sugerem que eu faça ?
Minha primeira idéia foi verificar através do parametro str, do método
insertString…
Mas aí fiquei com uma dúvida de como seria a melhor maneira de implementar, faço um if com os caracteres que devem ser aceitos ?
Por exemplo, para um JTextField que deva aceitar somente números: