Pessoal duvida jtable

Tente então reiniciar o netbeans e recompilar seu projeto.

Não tinha como fazer com ele aberto por que o windows nao deixava

Você quer da uma olhada no codigo DAO, para ver se o problema é lá lembrando que até ontem ele estava ok com DefaultTableModel, não sei se tem diferença, mas se quizer dar uma olhada

Fui Recompilar não foi

Ok. E voltou a dar o erro mesmo depois de você ter apagado a pasta?

Outra alternativa é procurar por todos os .class que o Netbeans tenha gerado e apaga-los.
Está muito estranho, isso deveria estar compilando perfeitamente.

Dei uma olhada ele cria dinovo a pasta rs

Estranho, aparentemente é um problema do Netbeans, não do seu código.

Apaguei e nao foi, é estranho por que na aceita a varivael lista não tem problema nenhum com TableModel?

Não tem problema nenhum.

O erro está muito estranho. Ele está dizendo que um construtor contendo no formato:

[code]ProdutoTableModel(List<Produto>)[code]
não existe.

Tente forçar a assinatura do seu construtor para:

Só para ver se pelo menos assim ele compila.

Este é o codigo da classe DAO Buscar Todos

 public Vector<Produto> buscarTodos() {
      conectar();
      Vector<Produto> resultados = new Vector<Produto>();
      ResultSet rs;
      try {
         rs = comando.executeQuery("SELECT * FROM produto");
         while (rs.next()) {
            Produto temp = new Produto();
            // pega todos os atributos da despesa
            temp.setDespesa(rs.getString("despesa"));
            temp.setEstabelecimento(rs.getString("estabelecimento"));
            temp.setDatadaDespesa(rs.getString("datadadespesa"));
            temp.setValordaDespesa(rs.getString("valordadespesa"));
            temp.setFormadePagamento(rs.getString("formadepagamento"));
            temp.setDataCheque(rs.getString("datacheque"));
            temp.setNumeroCheque(rs.getString("numerocheque"));
            temp.setMes(rs.getString("mes"));
            resultados.add(temp);
         }
         return resultados;
      } catch (SQLException e) {
         imprimeErro("Erro ao buscar Despesa", e.getMessage());
         return null;
      }
   }

Mas Aonde eu coloco isto Vini em qual classe

Seu DAO está certo, eu só usaria no lugar do Vector um ArrayList.

[code] public List<Produto> buscarTodos() {
conectar();
List<Produto> resultados = new ArrayList<Produto>();
ResultSet rs;
try {
rs = comando.executeQuery(“SELECT * FROM produto”);
while (rs.next()) {
Produto temp = new Produto();
// pega todos os atributos da despesa
temp.setDespesa(rs.getString(“despesa”));
temp.setEstabelecimento(rs.getString(“estabelecimento”));
temp.setDatadaDespesa(rs.getString(“datadadespesa”));
temp.setValordaDespesa(rs.getString(“valordadespesa”));
temp.setFormadePagamento(rs.getString(“formadepagamento”));
temp.setDataCheque(rs.getString(“datacheque”));
temp.setNumeroCheque(rs.getString(“numerocheque”));
temp.setMes(rs.getString(“mes”));
resultados.add(temp);
}
return resultados;
} catch (SQLException e) {
imprimeErro(“Erro ao buscar Despesa”, e.getMessage());
return null;
}
}

[/code]

Embora isso não devesse impedir seu código de funcionar (já que o Vector também é filho de List).

Na ProdutoTableModel.

[code]import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.swing.table.AbstractTableModel;

public class ProdutoTableModel extends AbstractTableModel {

//constantes que vão representar as colunas
//(só para facilitar o entendimento do código)
private final int COL_Despesa = 0;
private final int COL_Estabelecimento = 1;
private final int COL_DataDespesa = 2;
private final int COL_ValorDespesa = 3;
private final int COL_FormaPagamento = 4;
private final int COL_DataCheque = 5;
private final int COL_NumeroCheque = 6;

//lista dos produtos que serão exibidos
private List&lt;Produto&gt; produtos;

public ProdutoTableModel() {
    produtos = new ArrayList&lt;Produto&gt;();
}

public ProdutoTableModel(java.util.List&lt;model.Produto&gt; lista) {
    this();
    produtos.addAll(lista);
}

public int getRowCount() {
    //cada produto na lista será uma linha
    return produtos.size();
}

public int getColumnCount() {
    //vamos exibir só Nome e Quantidade, então são 2 colunas
    return 7;
}

@Override
public String getColumnName(int column) {
    //qual o nome da coluna
    if (column == COL_Despesa) {
        return "Despesa";
    } else if (column == COL_Estabelecimento) {
        return "Estabelecimento";
    }
      else if (column == COL_DataDespesa) {
        return "Data da Despesa";
    }
      else if (column == COL_ValorDespesa) {
        return "Valor da Despesa";
    }
      else if (column == COL_FormaPagamento) {
        return "Forma de Pagamento";
    }
      else if (column == COL_DataCheque) {
        return "Data do Cheque";
    }
      else if (column == COL_NumeroCheque) {
        return "Numero do Cheque";
    }
    return "";
}

@Override
public Class getColumnClass(int columnIndex) {
    //retorna a classe que representa a coluna
    if (columnIndex == COL_Despesa) {
        return String.class;
    } else if (columnIndex == COL_Estabelecimento) {
        return String.class;
    }
      else if (columnIndex == COL_DataDespesa) {
        return String.class;
    }
      else if (columnIndex == COL_ValorDespesa) {
        return String.class;
    }
      else if (columnIndex == COL_FormaPagamento) {
        return String.class;
    }
      else if (columnIndex == COL_DataCheque) {
        return String.class;
    }
      else if (columnIndex == COL_NumeroCheque) {
        return String.class;
    }
    return String.class;
}

public Object getValueAt(int rowIndex, int columnIndex) {
    //pega o produto da linha
    Produto p = produtos.get(rowIndex);

    //verifica qual valor deve ser retornado
    if (columnIndex == COL_Despesa) {
        return p.getDespesa();
    } else if (columnIndex == COL_Estabelecimento) {
        return p.getEstabelecimento();
    }
      else if (columnIndex == COL_DataDespesa) {
        return p.getDataDespesa();
    }
      else if (columnIndex == COL_ValorDespesa) {
        return p.getValorDespesa();
    }
      else if (columnIndex == COL_FormaPagamento) {
        return p.getFormaPagamento();
    }
      else if (columnIndex == COL_DataCheque) {
        return p.getDataCheque();
    }
      else if (columnIndex == COL_NumeroCheque) {
        return p.getNumeroCheque();
    }
    return "";
}
    @Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
    //no nosso caso todas vão ser editáveis, entao retorna true pra todas
    return true;
}

@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//pega o produto da linha
Produto p = produtos.get(rowIndex);

    //verifica qual valor vai ser alterado
    if (columnIndex == COL_Despesa) {
        p.setDespesa(aValue.toString());
    } else if (columnIndex == COL_Estabelecimento) {
        p.setEstabelecimento(aValue.toString());
    }
      else if (columnIndex == COL_DataDespesa) {
        p.setDataDespesa(aValue.toString());
    }
      else if (columnIndex == COL_ValorDespesa) {
        p.setValorDespesa(aValue.toString());
    }
      else if (columnIndex == COL_FormaPagamento) {
        p.setFormaPagamento(aValue.toString());
    }
      else if (columnIndex == COL_DataCheque) {
        p.setDataCheque(aValue.toString());
    }
      else if (columnIndex == COL_NumeroCheque) {
        p.setNumeroCheque(aValue.toString());
    }
    //avisa que os dados mudaram
    fireTableDataChanged();
}

//-----------------------------------------------------
//Métodos personalizados
//-----------------------------------------------------
public void inserir(Produto p) {
    produtos.add(p);

    fireTableDataChanged();
}

public void excluir(String pos) {
    produtos.remove(pos);

    fireTableDataChanged();
}

public void excluir(Produto p) {
    produtos.remove(p);

    fireTableDataChanged();
}

public void ordenarPorValor() {
    //ordena pelo nome
    Collections.sort(produtos, new Comparator&lt;Produto&gt;() {

        public int compare(Produto o1, Produto o2) {
            return o1.getValorDespesa().compareTo(o2.getValorDespesa());
        }
    });
    //avisa que a tabela foi alterada
    fireTableDataChanged();
}


public void misturar() {
    //mistura a lista
    Collections.shuffle(produtos);

    //avisa que a tabela foi alterada
    fireTableDataChanged();
}

public Produto getCliente(int pos) {
    if (pos &gt;= produtos.size()) {
        return null;
    }

    return produtos.get(pos);
}

}

[/code]

Coloca no lugar deste

este

porque se for isto esta dando erro

Continua dando erro

[code]

public ProdutoTableModel(java.util.List<model.Produto> lista) {
this();
produtos.addAll(lista); // está linha esta dando erro
} [/code]

Isso indica que possivelmente existam ou 2 classes chamadas List, ou 2 classes chamadas Produto em seu projeto.

Você pode alterar a declaração da lista (linha 20 do ProductTableModel) para:

Provavelmente o código vai pelo menos compilar a partir daí.

abaixo

Está dando erro:


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.swing.table.AbstractTableModel;

public class ProdutoTableModel extends AbstractTableModel {

    //constantes que vão representar as colunas
    //(só para facilitar o entendimento do código)
    private final int COL_Despesa = 0;
    private final int COL_Estabelecimento = 1;
    private final int COL_DataDespesa = 2;
    private final int COL_ValorDespesa = 3;
    private final int COL_FormaPagamento = 4;
    private final int COL_DataCheque = 5;
    private final int COL_NumeroCheque = 6;

    //lista dos produtos que serão exibidos
   private java.util.List<model.Produto> produtos; 

    public ProdutoTableModel() {
        produtos = new ArrayList();
    }

   public ProdutoTableModel(java.util.List<model.Produto> lista) {
        this();
        produtos.addAll(lista);
    }

    public int getRowCount() {
        //cada produto na lista será uma linha
        return produtos.size();
    }

    public int getColumnCount() {
        //vamos exibir só Nome e Quantidade, então são 7 colunas
        return 7;
    }

    @Override
    public String getColumnName(int column) {
        //qual o nome da coluna
        if (column == COL_Despesa) {
            return "Despesa";
        } else if (column == COL_Estabelecimento) {
            return "Estabelecimento";
        }
          else if (column == COL_DataDespesa) {
            return "Data da Despesa";
        }
          else if (column == COL_ValorDespesa) {
            return "Valor da Despesa";
        }
          else if (column == COL_FormaPagamento) {
            return "Forma de Pagamento";
        }
          else if (column == COL_DataCheque) {
            return "Data do Cheque";
        }
          else if (column == COL_NumeroCheque) {
            return "Numero do Cheque";
        }
        return "";
    }

    @Override
    public Class getColumnClass(int columnIndex) {
        //retorna a classe que representa a coluna
        if (columnIndex == COL_Despesa) {
            return String.class;
        } else if (columnIndex == COL_Estabelecimento) {
            return String.class;
        }
          else if (columnIndex == COL_DataDespesa) {
            return String.class;
        }
          else if (columnIndex == COL_ValorDespesa) {
            return String.class;
        }
          else if (columnIndex == COL_FormaPagamento) {
            return String.class;
        }
          else if (columnIndex == COL_DataCheque) {
            return String.class;
        }
          else if (columnIndex == COL_NumeroCheque) {
            return String.class;
        }
        return String.class;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        //pega o produto da linha
        ProdutoTabela p = produtos.get(rowIndex);//esta dando erro aqui

        //verifica qual valor deve ser retornado
        if (columnIndex == COL_Despesa) {
            return p.getDespesa();
        } else if (columnIndex == COL_Estabelecimento) {
            return p.getEstabelecimento();
        }
          else if (columnIndex == COL_DataDespesa) {
            return p.getDataDespesa();
        }
          else if (columnIndex == COL_ValorDespesa) {
            return p.getValorDespesa();
        }
          else if (columnIndex == COL_FormaPagamento) {
            return p.getFormaPagamento();
        }
          else if (columnIndex == COL_DataCheque) {
            return p.getDataCheque();
        }
          else if (columnIndex == COL_NumeroCheque) {
            return p.getNumeroCheque();
        }
        return "";
    }
        @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        //no nosso caso todas vão ser editáveis, entao retorna true pra todas
        return true;
    }

   @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        //pega o produto da linha
        ProdutoTabela p = produtos.get(rowIndex);//esta dando erro aqui

        //verifica qual valor vai ser alterado
        if (columnIndex == COL_Despesa) {
            p.setDespesa(aValue.toString());
        } else if (columnIndex == COL_Estabelecimento) {
            p.setEstabelecimento(aValue.toString());
        }
          else if (columnIndex == COL_DataDespesa) {
            p.setDataDespesa(aValue.toString());
        }
          else if (columnIndex == COL_ValorDespesa) {
            p.setValorDespesa(aValue.toString());
        }
          else if (columnIndex == COL_FormaPagamento) {
            p.setFormaPagamento(aValue.toString());
        }
          else if (columnIndex == COL_DataCheque) {
            p.setDataCheque(aValue.toString());
        }
          else if (columnIndex == COL_NumeroCheque) {
            p.setNumeroCheque(aValue.toString());
        }
        //avisa que os dados mudaram
        fireTableDataChanged();
    }

    //-----------------------------------------------------
    //Métodos personalizados
    //-----------------------------------------------------
    public void inserir(ProdutoTabela p) {
        produtos.add(p);

        fireTableDataChanged();
    }

    public void excluir(String pos) {
        produtos.remove(pos);

        fireTableDataChanged();
    }

    public void excluir(ProdutoTabela p) {
        produtos.remove(p);

        fireTableDataChanged();
    }

    public void ordenarPorValor() {
        //ordena pelo nome
        Collections.sort(produtos, new Comparator<ProdutoTabela>() {//esta dando erro aqui no sort

            public int compare(ProdutoTabela o1, ProdutoTabela o2) {
                return o1.getValorDespesa().compareTo(o2.getValorDespesa());
            }
        });
        //avisa que a tabela foi alterada
        fireTableDataChanged();
    }
    

    public void misturar() {
        //mistura a lista
        Collections.shuffle(produtos);

        //avisa que a tabela foi alterada
        fireTableDataChanged();
    }

    public ProdutoTabela getCliente(int pos) {
        if (pos >= produtos.size()) {
            return null;
        }

        return produtos.get(pos);//esta dando erro  aqui
    }
}

Esta nestas linhas:

Aqui:

Aqui:

Collections.sort(produtos, new Comparator<ProdutoTabela>() {//esta dando erro aqui no sort 

E aqui:

return produtos.get(pos);//esta dando erro  aqui  

o erro que está dando:

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - cannot find symbol
  symbol:   constructor ProdutoTableModel(java.util.List<model.Produto>)
  location: class ProdutoTableModel
        at Tela_Principal.PreencherTabela(Tela_Principal.java:599)
        at Tela_Principal.btTabelaActionPerformed(Tela_Principal.java:461)
        at Tela_Principal.access$500(Tela_Principal.java:6)
        at Tela_Principal$6.actionPerformed(Tela_Principal.java:121)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6267)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6032)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 58 segundos)