JFormattedTextField Esperto

1 resposta
P

Ola Pessoal,

deixa eu mostrar o drama:

Tenho uma classe JSmartFormattedTextField que extende de JFormattedTextField. Utilizo um padrão de componentes Smart q bolei aqui para facilitar o acesso direto a algumas tabelas do banco. Negócio é o seguinte tentei de todos os jeitos adicionar a mascara no construtor, mas independente dessa ele continua aceitando todos os caracteres digitados e tambem o método da Super, .setColumns nem adianta tb... Será no construtor é impossivel fazer isso??? Tô Penando!!! Pessoal dá uma olhada no código e digam o que estou fazendo de errado:

public class JSmartFormattedTextField extends JFormattedTextField implements interfaceSmart
{
  private String TableName;
  private String ColumnName;
  private int ColumnNumber;
  private int ColumnType;
  private int ColumnData;
  private int ColumnSize;
  private String ColumnFormat;

  public JSmartFormattedTextField (String aTableName, String aColumnName, int aColumnNumber, int aColumnType, int aColumnData, int aColumnSize, String aColumnFormat)
  {
    this.TableName = aTableName;
    this.ColumnName = aColumnName;
    this.ColumnNumber = aColumnNumber;
    this.ColumnType = aColumnType;
    this.ColumnData = aColumnData;
    this.ColumnSize = aColumnSize;
    this.ColumnFormat = aColumnFormat;

    try
    {
	MaskFormatter F = new MaskFormatter(aColumnFormat); 
	F.setPlaceholderCharacter('_');
	F.setValidCharacters("[telefone removido]");
	F.setAllowsInvalid(false);
	F.setOverwriteMode(true);
	this.setFormatter(F);
	this.setColumns(aColumnSize);
    }
    catch (ParseException e)
    {
      JOptionPane.showMessageDialog(null,e.toString());
    }
}

1 Resposta

P

Aê Galera,

consegui da seguinte maneira:

MaskFormatter F = new MaskFormatter(aColumnFormat); 
F.setPlaceholderCharacter('_');
F.setValidCharacters("[telefone removido]");
F.setAllowsInvalid(false);
F.setOverwriteMode(true);
F.setValueContainsLiteralCharacters(true);
F.install(this);

alguém sabe explicar pq?

Criado 6 de maio de 2005
Ultima resposta 6 de mai. de 2005
Respostas 1
Participantes 1