Dúvida - JFormattedTextField [Resolvido]

11 respostas
Gabriel_Tom

Fala galera, estou querendo colocar uma máscara no campo telefone, estou usando um método que vi em um tutorial.

public MaskFormatter Mascara(String Mascara) {
        MaskFormatter F_Mascara = new MaskFormatter();
        try {
            F_Mascara.setMask(Mascara); //Atribui a mascara
            F_Mascara.setPlaceholderCharacter(' '); //Caracter para preencimento
        } catch (Exception excecao) {
            excecao.printStackTrace();
        }
        return F_Mascara;
    }
}

O problema é quando eu tento colocar a máscara no meu jftfTelefone aparece um erro nessa linha:

private javax.swing.JFormattedTextField jftfTelefone;

Aqui vai o início do meu código onde estou instanciando. Se alguem puder me ajudar ficarei mtu grato. Obrigado.

public class CadCliente extends javax.swing.JFrame {

    static BancoDados bancoDados = new BancoDados();
    JFormattedTextField jftfTelefone = new JFormattedTextField(Mascara("(##)-####-####"));

    public CadCliente(Menu x){
        Login.menu = x;
        initComponents();
        this.setLocationRelativeTo(null);
       
    }
// resto do código

11 Respostas

Naum_Jefferson

Coloca o erro que estar dando ai.

fabricioempresa

Voce usa eclipse ou netbeans?

Gabriel_Tom

To usando o netbeans !

O erro que está dando tá falando que jftfTelefone já está definido no CadCliente.

A linha que está ficando sublinhada é esta aqui:

// Variables declaration - do not modify 
private javax.swing.JFormattedTextField jftfTelefone;

Essa linha fica sublinhada quando eu tento colocar a mascara :

Gabriel_Tom

Será pq eu já criei o jftfTelefone no jFrame CadCliente e depois estou instanciando novamente ?

Como que eu consigo colocar essa máscara no jftfTelefone então?

Vlw ai galera!

fabricioempresa

Não sei se é a maneira mais correta de se fazer usar mas eu costumo fazer assim:
Vá nas opções do seu jFormattedTextField e clique em formatterFactory e escolha uma "mascara"de sua preferência isso no netbeans

Gabriel_Tom

Po cara , não sabia que era fácil assim. Pesquisei em tudo que é lugar e só achava esses métodos.

Quando fiz o que vc me falou o próprio netbeans criou o código dentro do initcomponents.

try { jftfTelefone.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)####-####"))); } catch (java.text.ParseException ex) { ex.printStackTrace(); } jftfTelefone.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jftfTelefoneActionPerformed(evt); } }); jPanel1.add(jftfTelefone);

Vlw mesmo, abração cara!

fabricioempresa

huauhahuauhhau é facil msm tu pode criar eventos com os botoes tmb ao inves de fazer com linha de codigo eh uma facilidade que eu descobri vlw

Gabriel_Tom

Cara, só mais uma ajuda.
Agora quando fui testar para salvar no banco de dados, deu erro falando "Erro: Data truncation.: Data too long for column ‘telefone’ at row 1.

fabricioempresa

bah cara to comecando no java nao sei mtu nao mas tenta transoforma isso em alguma coisa.

foi mal aew

Gabriel_Tom

Agora resolvi.
No meu banco de dados tava máximo de caracters 10, agora aumentei numero máximo e salvou direito.
Acho que é bom voltar e esclarecer como resolvi para outras pessoas que tiverem a mesma dúvida conseguir resolver.
Vlw galera. Abraços

Velez

“Data too long for column” indica que os dados inseridos tem um tamanho maior que o máximo da coluna.

Basta aumentar o tamanho máximo da coluna ou diminuir o tamanho máximo do campo.

Abraços.
‘Gabriel Costa’.

Criado 8 de abril de 2010
Ultima resposta 14 de abr. de 2010
Respostas 11
Participantes 4