Problema com preenchimento da jtable usando TableModel

Pessoal,

implementei um tablemodel e estou passando um array com tipos diferentes de dados para ele. Só que ele está acusando um erro no método getValueAt. Vejam o código:

public Object getValueAt(int rowIndex, int columnIndex){
        Object[] linha = (Object[]) getLinhas().get(rowIndex);
        return linha[columnIndex];
}

Pego os dados do banco e jogo num arraylist através do createcriteria.(class).list do hibernate.
passo o array para o tablemodel, e quando executo ele mostra o seguinte erro:

“java.lang.ClassCastException: br.com.Cultivar cannot be cast to [Ljava.lang.Object;”

Onde “Cultivar” é a classe que contem os dados que quero jogar na table.

Estou usando a mesma implementação com uma outra classe de diversos tipos de dados em outra aplicação e funciona que é uma blz!!

Alguém sabe pq ele não está aceitando este cast???

[quote=gsalvatti]Pessoal,

implementei um tablemodel e estou passando um array com tipos diferentes de dados para ele. Só que ele está acusando um erro no método getValueAt. Vejam o código:

public Object getValueAt(int rowIndex, int columnIndex){
        Object[] linha = (Object[]) getLinhas().get(rowIndex);
        return linha[columnIndex];
}

Pego os dados do banco e jogo num arraylist através do createcriteria.(class).list do hibernate.
passo o array para o tablemodel, e quando executo ele mostra o seguinte erro:

“java.lang.ClassCastException: br.com.Cultivar cannot be cast to [Ljava.lang.Object;”

Onde “Cultivar” é a classe que contem os dados que quero jogar na table.

Estou usando a mesma implementação com uma outra classe de diversos tipos de dados em outra aplicação e funciona que é uma blz!!

Alguém sabe pq ele não está aceitando este cast???
[/quote]

Sua ArrayList é tipada? Digo, ela é ArrayList, ou seja lá qual seja a sua entidade?
Se você mandar uma ArrayList tipada, seu getValueAt ficaria assim:

public Object getValueAt(int rowIndex, int columnIndex)
{  
   SuaEntidade entidade = lista.get(rowIndex);
   if ( columnIndex = 0 ) return entidade.getCampo1();
   if ( columnIndex = 1 ) return entidade.getCampo2();
   if ( columnIndex = 2 ) return entidade.getCampo3();

   return "";
}  

Acho que o código fica mais legível para as pessoas e não fica tão grande assim!
Valeu, abraço!

Fala Nicolas

cara, implementando desta forma dá certo…
O único problema é que não vou poder usar uma TableModel genérica, vou ter que criar uma para cada entidade, num é mesmo?

Obrigado pela ajuda!

Nesse caso em especial, sim…

É aí que entra em cena nosso amigo Marky Vasconcelos, com sua ObjectTableModel!
Você mapeia suas classes de Entidades e a ObjectTableModel se vira pra montar a tabela! É ótima, vale a pena usar :smiley:

Dê uma olhada em:

Boa sorte, abraços!

Blz cara!!!

vou fazer a implementação desta ObjectTableModel…
Valeu mesmo pela ajuda…

Abração!

[quote=gsalvatti]Blz cara!!!

vou fazer a implementação desta ObjectTableModel…
Valeu mesmo pela ajuda…

Abração![/quote]

Então, só para esclarecer, voce nao precisa implementa o ObjectTableModel, só usar.

Ow Marky…

Verdade! Obrigado…

Ow Marky…

Verdade! Obrigado…