Olá boa tarde, meu primeiro tópico de ajuda aqui, preciso de uma grande ajuda na relação do uso do componente JTable do Swing do Java.
Eu criei um método de recuperação na minha classe DAO.
Porém eu não estou conseguindo usar ela, para popular a tabela.
public List<Produto> Recuperar(){
String sql = "SELECT nome, preco FROM produto";
List<Produto> produtos = new ArrayList<Produto>();
try {
conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()){
Produto produto = new Produto();
produto.setNome(rs.getString("nome"));
produto.setPreco(rs.getDouble("preco"));
produtos.add(produto);
}
ps.close();
} catch (Exception e){
System.out.println("" + e.getMessage());
}
return produtos;
}
Logo em seguida criei a classe de modelo usando o abstractTableModel
public class produtoTableModel extends AbstractTableModel{
produtoDAO dao = new produtoDAO();
private ArrayList<Produto> listaDeProdutos;
private String[] colunas = {"Nome","Preco"};
public produtoTableModel(){
this.listaDeProdutos = new ArrayList<>();
}
public void addProduto(Produto pProduto){
this.listaDeProdutos.add(pProduto);
fireTableDataChanged();
}
public void removerProduto(int rowIndex){
this.listaDeProdutos.remove(rowIndex);
fireTableDataChanged();
}
public Produto getProduto(int rowIndex){
return this.listaDeProdutos.get(rowIndex);
}
@Override
public int getRowCount() {
return this.listaDeProdutos.size();
}
@Override
public int getColumnCount() {
return colunas.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0:
return this.listaDeProdutos.get(rowIndex).getNome();
case 1:
return this.listaDeProdutos.get(rowIndex).getPreco();
default:
return this.listaDeProdutos.get(rowIndex);
}
}
@Override
public String getColumnName(int columnIndex){
return this.colunas[columnIndex];
}
}
Na parte da view estou tentando chamar dessa forma.
public class main extends javax.swing.JFrame {
private produtoTableModel tableModelProduto;
public main() {
initComponents();
this.tableModelProduto = new produtoTableModel();
this.jtableProduto.setModel(tableModelProduto);
Produto p = new Produto(Nome,Preco);
// Não funciona os parametros Nome e Preco, mesmo tendo um construtor criado com eles na classe modelo produto
produtoDAO dao = new produtoDAO();
this.tableModelProduto.addProduto(dao.Recuperar());
//this.tableModelProduto.addProduto(p);
}
Os parâmetros que coloco na instanciar do obj da classe produto não estão funcionando, retorna o erro
cannot find symbol
Me ajuda ai galera, estou alguns dias tentando resolver esse problema e não consigo 