Ola pessoal, sou novato aqui no forum e gostaria se possivel da ajuda de voces…
Criei um JFormatedTextField e apliquei uma mascara para aceitar somente numeros.
O problema acontece quando tento converter o valor do campo para int. (Esse campo sera utilizado para receber um numero de telefone). Quando tento usar o “Integer.parseInt” recebo uma exceção do tipo “NumberFormatException”. Segue abaixo os pedaços do meu código para vcs avaliarem…
Obrigado desde já.
Obrigado pela dica truck1n, inclusive aproveitei para melhorar meu formattedtextfield, uma vez que tinha utilizado uma rotina totalmente complexa a fim de evitar outros caracteres indesejados no campo. Achei que o “setValidCharacters” do maskformatter não eliminasse na digitação…
No entanto, rodei o exemplo do link e tentei fazer a conversão para int do valor contido no campo e ainda não obtive sucesso…
Minha intenção é guardar esse numero de telefone recebido em um banco de dados. Seria indicado trabalhar com ele no formato “string” caso eu não consiga fazer essa conversão??
Obrigado e []´s!
diego2005
Cara, já vi alguns post aqui desencorajando o uso do JFormattedTextField. Por exemplo, sua máscara é a seguinte: “#############”
Então se você não colocar um número parecido com: 9999999999999, vai dar erro.
Porque se vc colocar: 132
quando o JFormattedTextField perde o foco ele limpa os número, ele só mantem se a quantidade de caracteres for igual ao tamanho da sua máscara.
T+
P
paduan
Realmente Diego, observei esse fato quando estava testando o código, mas no meu caso, sou obrigado a preencher esse campo corretamente…
Mesmo assim obrigado…
[]´s!
diego2005
E mesmo preenchendo corretamente continua dando erro??
T+
Marky.Vasconcelos
acho que pra aceitar numeros desse tamanho você precisa de usar numeros do tipo long que tem o heap maior
P
paduan
Até como long continuo tendo a mesma exceção…
Não sei mais o que fazer…hehe
Qualquer sugestão é bem vinda pessoal, preciso muito validar esse campo…
Obrigado e []´s!
Marky.Vasconcelos
Ele tem só numeros?
oque você faz pra pegar a String?
Long.parseLong(jtField.getText());
?
P
paduan
Caramba Mark, nem conto o que fiz no ultimo teste com a sua sugestão de passar para long ao invés de usar int…
Troquei o tipo da variável para long só que esqueci de trocar o código que lia a string, ou seja:
Integer.parseInt(jtField.getText());
só podia dar zica mesmo… hehe
Agora sim kra, refazendo com o parseLong deu certo, e finalmente consegui pegar o conteúdo do campo…
Vlw mesmo pela dica!!! Estou a um bom tempo amarrado nisso…
Obrigado e []´s!!