Pegar a mascara de um JFormattedTextField em uma String [RESOLVIDO]

Galera,

Tenho um JFormattedTextField, e nele seto uma mascara assim:

try {
            inDtNasc = new JFormattedTextField(new MaskFormatter("##/##/####"));
        } catch (ParseException ex){
            ex.getMessage();
        }

Assim, gostaria de pegar a mascara setada, no caso ##/##/#### porém no formato String como aparece no campo / / .

Antes que me perguntem, preciso disso para testar se o campo esta vazio tipo o metodo textFiel.getText().isEmpty() onde ele me retorne um boolean.

caso alguem tenha uma idéia mais power, estou aberto a sugestoes pois creio que esta nao seja a forma mais correta :roll: .

vlew!

A classe JFormattedTextField não tem o método getText()?

tem sim, porém, se for fazer desta forma teria de ser assim:

if(inDtNasc.getText().equals("  /  /    ")){
                
}

queria algo como

if(inNome.getText().isEmpty()){
            
}

ai vc me fla: mas eh so usar o isEmpty da classe JFormattedTextField, porém o campo nao esta vazio enquanto a mascara esta lá, visto que se eu der um getText() no campo fomatado
ele me retorna a mascara como uma string…

so que nao posso fazer isso:

if(inDtNasc.getText().equals(inDtNasc.getText())){
                
}

por que em razoes obvias, o retorno do campo seria oq esta dentro dele, logo ele estando vazio ou nao ia sempre cair no IF.

o ideal seria isso:

if(inDtNasc.getText().equals(mascara do campo){
                
}

Alguem consegue?!

:stuck_out_tongue:

o maximo q consegui fazer foi antes de setar a mascara no campo
cria um objeto da classe MaskFormatter e dpois com umas gambi de strings
pega os dados q queria, que era a mascara sem os dados.

mas ainda sim preicsaria disso apartir do campo, há como?!

Oi,

Você poderá utilizar no lugar de getText() o método getValue().

Se ele for == null, quer dizer que o conteudo do campo não foi preenchido até ocupar a mascara inteira.

Tchauzin!

Liiiiiiiinnnnnnnnnnnnnnnaaaaaaaaaaaaaa!!!

vlew!!

funciono certim!!!

ficou assim, caso alguem preise um dia:


public void check() throws Exception{

        Class classe = obj.getClass();
        Field fields[] = classe.getDeclaredFields();

        for(Field field : fields){

            if (field.isAnnotationPresent(Obrigatorio.class)){
                field.setAccessible(true);

                if (field.get(obj) instanceof JFormattedTextField){
                    JFormattedTextField campo = (JFormattedTextField) field.get(obj);

                    // aqui ele checa se o campo tem o valor dentro, se nao tiver vai ser igual 
                    // a mascara pega no getValue (que retorna o ultimo valor valido)

                    if(!campo.getText().equals(campo.getValue()))
                        throw new Exception("O campo "
                            +campo.getName()+" esta vazio!");
                    
                } else if (field.get(obj) instanceof JTextField){
                    JTextField campo = (JTextField) field.get(obj);

                    if(campo.getText().isEmpty())
                        throw new Exception("O campo "
                                +campo.getName()+" esta vazio!");
                }
            }
        }
    }

Muito obrigado a quem ajudou!!!

vleu lina!!
:smiley: