Um método MaskFormatter para varios mask.install

2 respostas
Ian_Aquino

Boa tarde pessoal, tenho uma duvida que não consegui achar nas minhas pesquisas.
Tenho um MaskFormatter para validar nomes, mas tenho varios campos de nome e não queria para cada campo criar um MaskFormatter, na parte de mask.install tenho lá 3 jFormattedTextField mas só funciona com esse Mask o ultimo, como poderia contornar isso ? Segue a parte do código.

public AppGestaoProjeto() {

try {
        mask = new MaskFormatter("*************"); 
        mask.setValidCharacters("qwertyuiopasdfghjklzxcvbnm"
                + "QWERTYUIOPASDFGHJKLZXCVBNMé "); // Specifies the valid characters: a-z, A-Z and space.
        mask.setPlaceholderCharacter(' '); // If the input is less characters than the mask,
//            masktelefone = new MaskFormatter("****************");

//            masktelefone.setValidCharacters(“[telefone removido]+”);

} catch (ParseException ex) {

Logger.getLogger(AppGestaoProjeto.class.getName()).log(Level.SEVERE, null, ex);

}
initComponents();
    
    mask.install(jFormattedTextFieldNomeCliente);
    mask.install(jFormattedTextFieldNomeFuncionario);
    mask.install(jFormattedTextFieldFuncaoFuncionario);

// masktelefone.install(jFormattedTextFieldTelefoneCliente);
jMenuBar3.setVisible(false);

}

2 Respostas

FacaNaCaveira

Bom dia @Ian_Aquino, cara eu acredito que so funcione no ultimo mask.install pois ele esta sobrescrevendo os anteriores. Exempo:

mask.install(jFormattedTextFieldNomeCliente); //esse era o atual
mask.install(jFormattedTextFieldNomeFuncionario); //esse sobrescreveu
mask.install(jFormattedTextFieldFuncaoFuncionario);//e esse sobrescreveu o anterior

Dai só funciona no ultimo. Acho que uma solução mais plausível para não ter que escreve todas essas linhas para todos os campos seria você criar um método que faça essa configuração de campo, passando os campos como parâmetro essa seria uma sugestão.

Abraços
Max

Ian_Aquino

Obrigado mano, afinal acabei por fazer varias mascaras e varios mask.install.
:smile:

Criado 24 de maio de 2019
Ultima resposta 28 de mai. de 2019
Respostas 2
Participantes 2