Ajuda com MaskFormatter em JTable

3 respostas
F

Olá
Estou precisando de ajuda para implementar o MaskFormatter em meu JTable
Já li vários topicos aqui no site, e já consegui deixar funcionando de várias maneiras diferentes
O grande problema é que tenho que fazer isso para todas as colunas, exeto a primeira
Quando tento botar o setCellEditor em um por um, cada vez que uma nova coluna é adicionada as outras colunas perdem o mask
Nessa interface é preciso poder adicionar uma nova coluna a qualquer momento.
Já tentei criar um novo DefaultCellEditor para cada coluna, ou ter ele como atributo da classe e adicionar o mesmo para todas essas colunas, e nada disso funciona, sempre tenho o mesmo problema

3 Respostas

71C4700

Possa ser pq como vc adiciona os Editores e Redenrizadores as colunas, quando uma nova é criada em tempo de execução o Render e Editor desta nova coluna nao esta setadao para o qual vc deseja.

Veja se assim funciona

jTable1.setDefaultEditor(Object.class, SeuEditor); jTable1.setDefaultRenderer(Object.class, SeuRender);

Ai pra qualquer nova coluna este será o EDITOR e RENDER apropriado,nele vc pode verificar se é a primiera coluna e nao fazer nada, ou criar um pra ela.

Att.

F

Sim, meu renderer já estou fazendo dessa forma, só estou me perdendo um pouco pra fazer a class do editor
tens algum exemplo pra me passar?
e outra coisa, a mask só serve se eu souber exatamente como é o formato e quantidade de caracteres?
Pois na primeira coluna pode ser U ou *U ou ->U ou *->U (sendo U uma letra em uppercase)
Na outras é o U mesmo

Posso fazer uma parte com a mask e uma parte com o metodo matches da classe String?

Muito obrigado

71C4700

Sobre o Editor que é onde acredito que vc deva se impenhar mais, pois o RENDER serve apenas pra DESENHAR os dados.

Neste link tem um exemplo pronto que desenvolvi. Tem um EDITOR e um RENDER. Simples, mas é algo pra ter uma ideia.

Como vc sabe com vai se comportar seu EDITOR e RENDER, acredito que seria mais pratico utiliza-lo,mas fica a seu criterio.

Att.

Criado 19 de maio de 2009
Ultima resposta 19 de mai. de 2009
Respostas 3
Participantes 2