[RESOLVIDO]MaskFormatter

7 respostas
F

Galera ajuda aee
Tenho um JFormattedField com mascara, exemplo cpf MaskFormatted("###.###.###-##");
Eu defini meu banco de dados com 11 espaços, então ele não lê o campo todo, minha dúvida é, se eu definir no banco de dados 14 espaços que são correspondentes aos ‘.’ e numeros ele vai reconhecer?
Ou preciso fazer um método pra retirar os pontos e traço e ai sim armazenar só os numeros

Valeu!

7 Respostas

F

Se no banco vc definir o cpf como String não tem nenhum problema salvar com pontos junto. Seu campo cpf no banco é numero? Acho que não faz muito sentido.

F

Meu campo cpf no banco é VARCHAR(11), e sobre gravar com os pontos e traços que você disse, uma amiga disse que o banco não reconheceria e tal, ai eu nem testei se grava ou não, ai defini só 11 posições
Vou Fazer outra tabela, e colocar o cpf com mais posições e testar, se gravar com pontos e traço eu só arrumo isso, mas se não eu vou ter que fazer um método pra retirar esses caracteres que não são dígitos!
Mas valeu a ajuda felipeaps :smiley:

F

Caso queira armazenar somente os dígitos faça o seguinte:

MaskFormatter mask = new MaskFormatter("SUA MASCARA");
mask.setValueContainsLiteralCharacters(false);

Aí use o jFormattedTextField.getValue().toString(); para recuperar a String.

Se vc tem por exemplo uma mascara de telefone “([telefone removido]”, ele já te retorna [telefone removido].

Mas creio que não vai ter problemas em armazenar pontos e hífens não.

F

Putz então utiilizando
mask.setValueContainsLiteralCharacters(false);

Ele já me dá só os número, que mão na roda, eu estava aqui já pensando em criar um método, pra pegar a string e ir tirando oque não for digito

Valeuu De novo!!!

F

ow felipe, eu tentei fazer oque você disse, porém ele não deixa fazer, pede para trocar por getName ou getSize....
oque eu coloco...?

Hospede cliente = new Hospede();
			
			cliente.setNome(tnome.getText());
			cliente.setCpf(tcpf.getValue().toString());
			cliente.setIdade(Integer.parseInt(tidade.getText()));
			cliente.setTelefone(ttelefone.getValue().toString());
			cliente.setEnde(tendereço.getText());
			cliente.setNumero(Integer.parseInt(tnumero.getText()));
			cliente.setCompl(tcomplemento.getText());
			cliente.setCidade(tcidade.getText());
			cliente.setEstado(boxestado.getSelectedItem().toString());
			cliente.setQuarto(Integer.parseInt(tquarto.getText()));
Aqui eu faço oque você disse da mascara
masccpf = new MaskFormatter("###.###.###-##");			/* ## - Somente Numeros serão aceitos*/
			masccpf.setValueContainsLiteralCharacters(false);
F

Seu setCPF() nao recebe um inteiro não né?

F

Já achei o erro
Falta de atenção mesmo, como eu tinha feito uns testes sem mascara, coloquei como JTextField e esqueci de colocar Formatted de volta, ai ele não reconhecia

Mas já testei e esta funcionando perfeitamente

Valeu mais uma vez!!!

Criado 15 de maio de 2012
Ultima resposta 17 de mai. de 2012
Respostas 7
Participantes 2