Eu não to conseguindo colocar os dados de um List em JTable personalizado, os dados eu sei que sao carregados mas a O jTable não é preenchido, se alguem puder ajudar, eu fiz uma agendinha simples pra testar e deu certo agora não quer preencher nem qe a vaca tussa !
minha table:
[code]public class TabelaConsultaAtivo extends AbstractTableModel {
private List<Ativo> linhasTabela; //as linhas que contem as informacoes do 'Ativo'
private String[] colunasTabela = new String[]{"Coluna A", "Coluna B", "Coluna C", "Coluna D", "Coluna F"}; //Nome das colunas da tabela
public TabelaConsultaAtivo() { //Cria um ModeloTabela vazio, para ser utilizado
linhasTabela = new ArrayList<Ativo>();
}
public TabelaConsultaAtivo(List<Ativo> listaDeAtivo) { //Cria um 'ModeloTabela' com os dados da lista de Ativo
linhasTabela = new ArrayList<Ativo>(listaDeAtivo);
}
@Override
public int getRowCount() { //retorna a quantidade de linhas
return linhasTabela.size(); //retorna o tamanho da lista
}
@Override
public int getColumnCount() { //retorna a quantidade de colunas
return colunasTabela.length;
}
@Override
public String getColumnName(int columnIndex) { //retorna os dados do array que tem os nomes das colunas armazenados
return colunasTabela[columnIndex];
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Ativo ativo = linhasTabela.get(rowIndex);
/* Retorna o campo referente a coluna especificada.
Aqui é feito um switch para verificar qual é a coluna
e retornar o campo adequado. As colunas sãoas mesmas
que foram especificadas no array "colunas". */
switch (columnIndex) {
case 0:
return ativo.getEquipamento();
case 1:
return ativo.getNumeroPatrimonio();
case 2:
return ativo.getNumeroSerie();
case 3:
return ativo.getCodigoOperacional();
case 4:
return ativo.getFabricante();
default:
throw new IndexOutOfBoundsException("Index da coluna estourou !");
}
}
public void setValueAt(Ativo valor, int rowIndex) { //modifica a linha especificada
Ativo ativo = linhasTabela.get(rowIndex); //pega o item da linha que vai ser modificado
//pega os valores do getXXX e seta nos novos
ativo.setEquipamento(valor.getEquipamento());
ativo.setNumeroPatrimonio(valor.getNumeroPatrimonio());
ativo.setNumeroSerie(valor.getNumeroSerie());
ativo.setCodigoOperacional(valor.getCodigoOperacional());
ativo.setFabricante(valor.getFabricante());
//faz o update dos nomes
fireTableCellUpdated(rowIndex, 0);
fireTableCellUpdated(rowIndex, 1);
fireTableCellUpdated(rowIndex, 2);
fireTableCellUpdated(rowIndex, 3);
fireTableCellUpdated(rowIndex, 4);
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) { //diz que a celula nao eh editavel
return false;
}
public Ativo getAtivo(int indiceLinha) {
return linhasTabela.get(indiceLinha);
}
public void addAtivo(Ativo ativo) { //adiciona um registro a lista
linhasTabela.add(ativo);
int ultimoIndice = getRowCount() - 1;
fireTableRowsUpdated(ultimoIndice, ultimoIndice);
}
public void excluiAtivo(int indiceLinha) { //exclui a linha especificada
try {
linhasTabela.remove(indiceLinha);
fireTableRowsDeleted(indiceLinha, indiceLinha);
} catch (RuntimeException ex) {
ex = new RuntimeException();
throw ex;
}
}
public void addListaDeAtivo(List<Ativo> listaAtivo) { //adiciona uma lista Ativo no fim dos registros
int ultimoTamanho = getRowCount(); //pega o ultimo tamnho da tabela
linhasTabela.addAll(listaAtivo); //adiciona os registros
fireTableRowsInserted(ultimoTamanho, getRowCount() - 1);
}
public void limparLinhas() { //remove os registros
linhasTabela.clear();
fireTableDataChanged();
}
public boolean isModeloTabelaEmpity() { //verifica se a 'ModeloTabela' esta vazio
return linhasTabela.isEmpty();
}
}
[/code]
onde adidiciona na tableModel:
[code]public void listaAtivoNumSerie(String numSerie) {
tabelaAtivo.limparLinhas();
Ativo dadosAtivos = repository.buscarPorNumeroSerie(numSerie);
dadosAtivos.getEquipamento();
dadosAtivos.getNumeroPatrimonio();
dadosAtivos.getNumeroSerie();
dadosAtivos.getCodigoOperacional();
dadosAtivos.getFabricante();
tabelaAtivo.addAtivo(dadosAtivos);
}[/code]
onde faz a busca:
[code]public Ativo buscarPorNumeroSerie(String numeroDeSerie) {
TypedQuery query = em.createNamedQuery(“ativo.buscarPorNumeroDeSerie”, Ativo.class)
.setParameter(“numeroSerie”, numeroDeSerie);
return query.getSingleResult();
}[/code]
o pior é que ele faz a consulta e pega dos dados certinho, mas agora quando vai colocar no Jtable nao vai 
EDIT: tentei fazer uma gambiarra com DefaultTableModel, ele pega so dados tambem , mas a jTable nada, nao preenche de jeito nehum
[code] public void listaAtivoNumSerie(String numSerie) {
DefaultTableModel model = (DefaultTableModel) tabelaContabil.getModel();
Ativo dadosAtivos = repository.buscarPorNumeroSerie(numSerie);
dadosAtivos.getEquipamento();
model.setNumRows(0);
List <Ativo> lista = new ArrayList<>();
lista.add(dadosAtivos);
for(Ativo a:lista){
System.out.println(a.getEquipamento()); //ele realmete pega o nome do equipamento, mas nao coloca na jTable
model.addRow(new Object[]{a.getEquipamento()});
}
}
[/code]
Falta de atenção é triste !, eu achei o erro, não estava chamando o metodo para a ser executado no evento do botao !