Mudar nome de Coluna JTable

7 respostas
makecio

Galera estou com dificuldade em mudar o nome da columa da JTable

usei o seguinte codigo

tabela.getColumnModel().getColumn(0).setHeaderValue("Nome");
tabela.getTableHeader().resizeAndRepaint();

ele ate funciona… mas so muda apenas o nome que aparece pro usuario, mas o nome real da coluna nao muda fica o mesmo

7 Respostas

D

implemente os metodos abstratos do Jtable, axo que são 3, dentre eles os da coluna é:

public String getColumnName(int column) { switch (column) { case 0: return "Código"; case 1: return "Nome"; } return null; }
cada CASE é relacionado as colunas…

vlw

ViniGodoy

O que seria o “nome real” da coluna?

makecio

obrigado Damiao Cunha deu certo .

ViniGodoy

A JTable não tem métodos abstratos. Quem tem é o TableModel. É nele que você deve implementar o método getColumnName.

E, outra coisa, jamais use o DefaultTableModel.

D

realmente o Jtable nao tem metodos abstratos,
mas eu respondi daquela forma, pq eu percebi que era um TableModel devido o que ele tinha postado!!!

ô Vini,
pq eu nao devo usar o DefaultTableModel???

eu uso o TableModel e implenento os metodos abstratos, e crio ums para manipular…

o q tem d errado???

e para makecio,
se já resolveu seu problema coloca a tag [RESOLVIDO] no titulo…

vlw

ViniGodoy

O DefaultTableModel tem diversos problemas, entre eles:

  1. Duplicar os dados;
  2. Usar sincronização desnecessária;
  3. Não manter íntegro suas classes de negócio E isso exige que você exiba na tabela colunas que não necessariamente quer mostrar para o usuário (como o ID), ou ter que duplicar a informação em listas;
  4. Ser mais difícil de trabalhar;
  5. Exigir casts inseguros;

O ideal é mesmo criar seu próprio TableModel, filho do AbstractTableModel.

D

ahhh sim, agora entendi o q vc qeria dizer…

é verdade, eu crio uma classe extendes de AbstractTableModel…

é isso msm…
vlw

Criado 13 de novembro de 2010
Ultima resposta 14 de nov. de 2010
Respostas 7
Participantes 3