Só que eu tenho problema na hora de pegar e definir o texto sem formatação. Como que eu faço?
O getText() e getValue() tem quais diferenças a não ser no tipo de retorno.
Outra coisa que queria mudar é quando ele perde o foco, o que ele faz, muda o valor, usa o anterior, como eu posso mudar isso? Tem algumas coisas na API, mas não entendi muito bem.
Olá boa tarde vantuiljose!
Faz assim use esta classe aqui que fiz :
importjavax.swing.text.AttributeSet;importjavax.swing.text.BadLocationException;importjavax.swing.text.PlainDocument;/** * * @author the Jackson Cleber */publicclassFormataCpfextendsPlainDocument{publicFormataCpf(){}@OverridepublicvoidinsertString(intoffs,Stringstr,AttributeSeta)throwsBadLocationException{if(Character.isDigit(str.charAt(0))){Stringtexto=getText(0,getLength());if(texto.length()<14){remove(0,getLength());StringBufferstrBuf=newStringBuffer(texto+str);if(strBuf.length()==4)strBuf.insert(strBuf.length()-1,".");if((strBuf.length()==8))strBuf.insert(strBuf.length()-1,".");if((strBuf.length()==12))strBuf.insert(strBuf.length()-1,"-");super.insertString(0,strBuf.toString(),a);}}}}
Ai ao invéz de você usar JFormattedTextFied use o JTextField mesmo.
Criar um JTextField tfCpf e faça assim dentro do seu metodo Construtor :
Cloude já tinha usada a tecnica do Document…
Mas acho que estou usando demais… Pra tudo que eu tenho que formatar vou criar um novo documento? Vou ter muitos documentos no final…
marcobiscaro2112, mesmo quando eu dô um getValue() usando o MaskFormatter, o texto vem com os hífens e pontos…
Tem outra forma de fazer isso?
M
marcobiscaro2112
VantuilJose:
Cloude já tinha usada a tecnica do Document…
Mas acho que estou usando demais… Pra tudo que eu tenho que formatar vou criar um novo documento? Vou ter muitos documentos no final…
marcobiscaro2112, mesmo quando eu dô um getValue() usando o MaskFormatter, o texto vem com os hífens e pontos…
Tem outra forma de fazer isso?
Então tem algo errado. Você dá um setValue sem a pontuação na hora de preencher o campo (se é que você faz isso via software)?
VantuilJose
:shock:
Deve ter algo de errado comigo… heeheheehe :oops:
Aqui, quando eu faço isso por exemplo:
E os métodos:
getText() - Me retorna null
getValue() - Me retorna [telefone removido]
Portanto o texto não atualizado…
Eu vou ter que formatar a string toda hora colocando os hífens e pontos para que funcione?
Naum encontrei uma forma de fazer isso no NetBeans… Mas tudo bem, dessa forma funciona perfeitamente… Pego os dados não formatados no banco e dou um setValue() e o JFormattedField já os mostra formatado, e quando dou um getValue() eles já vem da forma que preciso para gravar no banco!