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 
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.