JFormattedTextField apaga valores setados[Resolvido]

5 respostas
geraldofrancisco

E ai pessoal, tenho uma classe com o código abaixo:

public Mascaras() {
    	try {
    		// # = apenas números
    		// O resto irá ficar inflexível
    		maskTEL = new MaskFormatter("(##)####-####");
            maskCEP = new MaskFormatter("#####-###");
    		maskCnpj = new MaskFormatter("##.###.###/####-##");
    		maskCPF = new MaskFormatter("###.###.###-##");
    		maskLogNum = new MaskFormatter("#########"); 
    		
            // Caractere que irá aparecer após ter dado um Delete
            maskCEP.setPlaceholderCharacter('_');
            maskTEL.setPlaceholderCharacter('_');
            maskCnpj.setPlaceholderCharacter('_');
            maskCPF.setPlaceholderCharacter('_');
            maskLogNum.setPlaceholderCharacter(' ');            
            
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

e chamo ele atraves de outra classe da seguinte forma:

JFormattedTextField telefone = new JFormattedTextField(mascaras.maskTEL);

para uso de cadastro beleza mas quando eu tento dar um setText dentro da JFormattedTextField ele até aparece o conteúdo porém quando ele perde o foco ele volta a condição de mascara vazia.

Minha aplicação é desktop.

Obrigado pessoal!

5 Respostas

L

Explica melhor isso daí amigão.

Ao dar um

telefone.setText("([telefone removido]");

seu campo preenche normal, é isso ?

mas ao sair dele, o mesmo fica vazio ? ou fica com a máscara(sem os números informados) ?

geraldofrancisco

Isso mesmo ele preenche normal, mas ao perder o foco fica só a máscara sem o preenchimento, logo após se a pessoa for digitar novamente ele volta a normalidade.

yurifw

ve se é esse comportamento que voce quer:

telefone.setFocusLostBehavior(JFormattedTextField.COMMIT);

se quiser outro comportamento de uma olhada na documentação xD

http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/JFormattedTextField.html#setFocusLostBehavior%28int%29

geraldofrancisco

Seria isso, porém se o usuário for modificar ele perde a característica de máscara.

geraldofrancisco

Resolvido pessoal, não passou de um erro vamos dizer bem otário que consumiu meu tempo para achar!

a máscara tava assim: (##)####-####, mas no banco tinha um espaço entre o parêntesis e o próximo numero. (##)_####-####.

Obrigadão

Criado 24 de abril de 2013
Ultima resposta 26 de abr. de 2013
Respostas 5
Participantes 3