JFormattedTextField

3 respostas
H

Amigos

Alguém tem um exemplo bem simples de como utiizar JFormattedTextField formatando datas, números com decimais, maíusculas e minúsculas, limite do tamanho do campo e etc…

Obrigado,

Hugo.

3 Respostas

Andre.flu
public class Tela extends JPanel {
  JFormattedTextField txtData, txtTelefone, txtCelular;

  MaskFormatter formatoData, formatoTelefone, formatoCelular;

public Tela(){

//formata o campo Data
    try {
      formatoData = new MaskFormatter("**/**/****");
    }
    catch (ParseException parseEx) {
      JOptionPane.showMessageDialog(null, "Erro de formatação na Data de Nascimento.", "Erro",JOptionPane.ERROR_MESSAGE);
    }

//formata o campo Telefone
    try {
      formatoTelefone = new MaskFormatter("(**)****-****");
    }
    catch (ParseException parseEx) {
      JOptionPane.showMessageDialog(null, "Erro de formatação do Telefone.", "Erro",JOptionPane.ERROR_MESSAGE);
    }

//formata o campo Celular
    try {
      formatoCelular = new MaskFormatter("(**)****-****");
    }
    catch (ParseException parseEx) {
      JOptionPane.showMessageDialog(null, "Erro de formatação do Celular.", "Erro", JOptionPane.ERROR_MESSAGE);
    }
//cria o campo data e instala.
    txtData = new JFormattedTextField();
    txtData.setColumns(8);
    formatoData.install(txtData);

//cria o campo Telefone e instala.
    txtTelefone = new JFormattedTextField();
    txtTelefone.setColumns(8);
    formatoTelefone.install(txtTelefone);

//cria o campo celular e instala.
    txtCelular = new JFormattedTextField();
    txtCelular.setColumns(8);
    formatoCelular.install(txtCelular);

Após isso, é só vc variar os campos no formato que vc quer.

F

Cara eu faço assim,

Tem uma função só para formatar:

public static MaskFormatter formatarCampoData() {

    // Declaraçao e Inicializaçao de Variáveis
    MaskFormatter formato = new MaskFormatter();

    try {
      formato.setMask("##/##/####");
      formato.setPlaceholderCharacter('_');
      //formato.install(jFormattedTextField1);
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }

    return formato;
  }

e na hora de criar o campo dentro do JFrame eu só faço chamar a função:

txtDataSaida = new JFormattedTextField(Funcoes.formatarCampoData());
    txtDataSaida.setValue("");
    txtDataSaida.setBounds(new Rectangle(308, 159, 80, 20));
H

Valeu !!!

Vai ajudar muito.

Hugo

Criado 20 de fevereiro de 2004
Ultima resposta 24 de fev. de 2004
Respostas 3
Participantes 3