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<Produto> produtos;
public ProdutoTableModel() {
produtos = new ArrayList<Produto>();
}
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 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<Produto>() {
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 >= 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)