Mask Malditas!

2 respostas
MlkZica

Pessoal,
Estou com um problema ao utilizar mascaras:

Alguns campos como: CPF, CEP e Telefone, utilizo o jFormattedField para dar formatação necessária ao campo, e para isto criei o método com algumas mascaras. Adiciono essa mascara no próprio JTextField do projeto. Exemplo do CEP:

\\\\\\\\\\\\\\CODIGO PERSONALIZADO NETBEANS\\\\\\\\\\\\\\\\\

javax.swing.text.MaskFormatter masktelcel = null; 
try 
{ 
masktelcel = new javax.swing.text.MaskFormatter("#####-###"); 
masktelcel.setPlaceholderCharacter('_'); 
} 
catch (java.text.ParseException exc){}
CampoCep = new javax.swing.JFormattedTextField(masktelcel);  ;

CampoCep.setEditable(false);

CampoCep.setFocusable(false);

CampoCep.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
        CampoCepActionPerformed(evt);
    }
});
CampoCep.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusLost(java.awt.event.FocusEvent evt) {
        CampoCepFocusLost(evt);
    }
});
CampoCep.addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyTyped(java.awt.event.KeyEvent evt) {
        CampoCepKeyTyped(evt);
    }
});
O problema é:

- Quando digito o CEP non campo com a maskara... ok! Dou o TAB e ele executa a busca do CEP. Quando volto para o campo do CEP e deleto a informação e dou o TAB para sair do campo.... a informação volta (como se eu não tivesse apagado).
- Quando inicio um novo cadastro (como os campos limpos (setText("")), passo com o cursor utilizando o TAB e no campo volta a aparecer o último texto digitado. Ou seja, depois de utilizar o campo pela 1ª vez, não consigo deixá-lo em branco.
Algum sabe como corrigir isto ? Zerar o campo ?

Grato,....

Arthur.

2 Respostas

R

Talvez você consiga o quer usando PERSIST:

http://docs.oracle.com/javase/7/docs/api/javax/swing/JFormattedTextField.html#setFocusLostBehavior(int)

formattedTextField.setFocusLostBehavior(JFormattedTextField.PERSIST);
MlkZica

Amigo…

Infelizmente sou burro pra Caral… Não estou conseguindo fazer funcionar com isso não !
Já tentei algumas formas como .setOverWriteMode … o PERSIST … o .setValeu, mas não estou obtendo resultado algum. Pelo contrário… está dando pau em tudo !
Talvez eu não esteja colocando a infformação no lugar correto.

Se mais alguém conseguir me ajudar… agradeço muuuuuuiiiiiito !

Obrigado.

Arthur.

Criado 27 de fevereiro de 2012
Ultima resposta 27 de fev. de 2012
Respostas 2
Participantes 2