Problemas ao povoar a Jtable[RESOLVIDO]

0 respostas
severuspedreirus

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:

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();
    }

}
onde adidiciona na tableModel:
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);
        

    }
onde faz a busca:
public Ativo buscarPorNumeroSerie(String numeroDeSerie) {
        TypedQuery<Ativo> query = em.createNamedQuery("ativo.buscarPorNumeroDeSerie", Ativo.class)
                .setParameter("numeroSerie", numeroDeSerie);
        return query.getSingleResult();

    }

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

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()});
      }
    }

Falta de atenção é triste !, eu achei o erro, não estava chamando o metodo para a ser executado no evento do botao !

Criado 19 de maio de 2014
Respostas 0
Participantes 1