Jtable com arraylist

Olá pessoal
estou com um problema, tenho um aplicativo em jse e tenho que listar um jtable com um arraylist<clscliente_ent>ListaClie
onde ListaCliente recebe os dados de clscliente_dao.listarclientes();
Criei uma classe model extend AbstractTableModel para modelar o jtable, so que qdo é executado ele coloca naos campos o abcdario em vez
dos meus atributos de clientes e também nao está listando os dados, alguém pode me ajudar?

Segue abaixo o codigo para modelar jtable

    private class AgendamentoModel extends AbstractTableModel {
        private List&lt;clscliente_ent&gt;ListaClie;

        public void setAgendamento(List&lt;clscliente_ent&gt;ListaClie){
            this.ListaClie = ListaClie;
        }

        public int getColumnCount() {
          return 11;
        }
        
        public String getColunName(int col){
            switch (col) {
             case 0:
                return &quot;ID&quot;;
             case 1:
                return &quot;Data e Hora&quot;;
             case 2:
                return &quot;Tipo&quot;;
             case 3:
                return &quot;Nome&quot;;
             case 4:
                return &quot;Endereço&quot;;
             case 5:
                return &quot;Bairro&quot;;
             case 6:
                return &quot;Pais&quot;;
             case 7:
                return &quot;Estado&quot;;
             case 8:
                 return &quot;Cidade&quot;;
             case 9:
                 return &quot;Cep&quot;;
             case 10:
                 return &quot;Telefone 1&quot;;
             default:
                return null;
          }
            
        }

        public int getRowCount() {
          
            //variaveis
            int saida;

            //verificar
           if(findice &gt; 0)
             saida= findice;
           else
             saida = 0;

           return saida;
        }  

        public Object getValueAt(int row, int col) {
            //verificar
            if(ListaClie!= null && row &gt;=0 && row &lt; ListaClie.size()){
             clscliente_ent clie =  ListaClie.get(row);
           
            switch (col) {
             case 0:
                  return ListaClie.get(findice-1).getIdclie();
             case 1:
                  return ListaClie.get(findice-1).getData();
             case 2:
                  return ListaClie.get(findice-1).getTipo();
             case 3:
                  return ListaClie.get(findice-1).getNome();
             case 4:
                  return ListaClie.get(findice-1).getEndereco();
             case 5:
                  return ListaClie.get(findice-1).getBairro();
             case 6:
                  return ListaClie.get(findice-1).getIpais();
             case 7:
                  return ListaClie.get(findice-1).getIestado();
             case 8:
                  return ListaClie.get(findice-1).getIcidade();
             case 9:
                  return ListaClie.get(findice-1).getCep();
             case 10:
                  return ListaClie.get(findice-1).getFone1();
            }

           }
           return null;
        }

    }

E para obterdados

 public void obter_dados()
    {//inicio do mento obter dados cliente
        //preencher ficha de empresa
        ListaClie = clsCliente_dao.ListarClie();
        indice = ListarClie.size();

        //montar modelo
        AgendamentoModel modelo = new AgendamentoModel();
        jgride.setModel(modelo);
      
    }//fim do mentodo obter dados cliente

Qdo eu coloco jgride.setModel(modelo); aplico o modelo ao jgride onde jgride é um jtable
porque não exibe os atributos existente em modelo.getColunName() e porque nao exibe os dados populados em Object getValueAt(int row, int col) ?

Por favor me ajudem

Desde já agradeço

Olá,

Faltou um “m” no nome do seu metodo.

public String getColumnName(int col)

abraço

Olá caro colega
fiz os testes e da mesma forma não lista os dados
apesar q o caracter “m” diferenciou, incluiu os atributos da classe cliente…
porém não lista os registros…
Está faltando alguma coisa?

Ok!
Mas as colunas apareceram, certo?

Tenta colocar assim nos metodos:

public Object getValueAt(int row, int col) {
         
         if(ListaClie == null ||ListaClie.isEmpty())         
             return null;

         switch (col) {
          case 0:
               return ListaClie.get(row).getIdclie();
          case 1:
               return ListaClie.get(row).getData();
          case 2:
               return ListaClie.get(row).getTipo();
          case 3:
               return ListaClie.get(row).getNome();
          case 4:
               return ListaClie.get(row).getEndereco();
          case 5:
               return ListaClie.get(row).getBairro();
          case 6:
               return ListaClie.get(row).getIpais();
          case 7:
               return ListaClie.get(row).getIestado();
          case 8:
               return ListaClie.get(row).getIcidade();
          case 9:
               return ListaClie.get(row).getCep();
          case 10:
               return ListaClie.get(row).getFone1();
               default:
                   return null;
         }
     }

public int getRowCount() {

     if(ListaClie == null || ListaClie.isEmpty())
         return 0;
     
     return ListaClie.size();
 }

abraço

Olá Mark
Valeu… funcionou
tinha erro no if e no controle (row) retornou linha e lista legal

Mais surgiu uma duvida… tem como selecionar uma linha da jtable e pegar o valor do ID?
por exemplo
ID | Nome
1 | João Silva
2 | Maria Aparecida
3 | Mario Serra

Selecionar a linha 2 e pegar o item do ID da linha 2

Desde já agradeço

No seu model, crie um método:

public clscliente_ent get(int row) { return ListaClie.get(row); }
E então, você faz:

clscliente_ent selecionado = seuModel.get(suaTable.getSelectedRow());

E então é só usar o selecionado.getIdclie();

Outra dica. Sempre que sobrescrever métodos use a anotação @Override, por exemplo:

@Override public Object getValueAt(int row, int col) {

Isso fará com que o compilador gere um erro, caso não esteja havendo uma sobrescrição. Se você tivesse usado essa anotação, teria recebido um erro no getColumnCount, pois ele estava escrito errado.