Pessoal, estou com um JFrame que tem uma tabela, e dentro dessa tabela é listado os produtos que eu possuo no meu banco de dados (MySQL), porem estou usando DefaltTableModel e queria passar para AbstractTableModel. Alguem poderia me ajudar?
Essa aqui é uma parte do código da minha TelaProduto:
public class TelaProduto extends javax.swing.JInternalFrame {
Connection connection = null;
PreparedStatement pst = null;
ResultSet rs = null;
public TelaProduto() {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
initComponents();
connection = ModuloConexao.connection();
txtProId.setVisible(false);
}
private void adicionar() {
if ((txtProProduto.getText().isEmpty())
|| (txtProPreco.getText().isEmpty()) || (txtProQuantidade.getText().isEmpty())
|| (jDatProCompra.getDate() == null || (jDatProVencimento.getDate() == null))) {
JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios.");
} else {
String sql = "insert into tbprodutos(produto,preco,quantidade,categoria,compra,validade) values(?,?,?,?,?,?)";
try {
pst = connection.prepareStatement(sql);
pst.setString(1, txtProProduto.getText());
pst.setString(2, txtProPreco.getValue().toString());
pst.setString(3, txtProQuantidade.getText());
pst.setString(4, cboProCategoria.getSelectedItem().toString());
pst.setDate(5, new java.sql.Date(jDatProCompra.getDate().getTime()));
pst.setDate(6, new java.sql.Date(jDatProVencimento.getDate().getTime()));
int adicionado = pst.executeUpdate();
if (adicionado > 0) {
JOptionPane.showMessageDialog(null, "Produto cadastrado com sucesso.");
txtProProduto.setText(null);
txtProPreco.setText(null);
txtProQuantidade.setText(null);
cboProCategoria.setSelectedItem(null);
jDatProCompra.setDate(null);
jDatProVencimento.setDate(null);
pesquisar_produto();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
}
Eu fiz outra classe, extendendo abstractTableModel:
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class ProdutoTableModel extends AbstractTableModel {
private static final int COL_PRODUTO = 0;
private static final int COL_PRECO = 1;
private static final int COL_QUANTIDADE = 2;
private static final int COL_CATEGORIA = 3;
private static final int COL_COMPRA = 4;
private static final int COL_VALIDADE = 5;
private List<TelaProduto> descricao;
public ProdutoTableModel(List<TelaProduto> descricao){
this.descricao = descricao;
}
@Override
public int getRowCount() {
return descricao.size();
}
@Override
public int getColumnCount() {
return 6;
}
@Override
public Object getValueAt(int i, int i1) {
TelaProduto produto = descricao.get(rowIndex);
if (columIndex == COL_PRODUTO){
return produto.getId();
}
return null;
}
}
Estou no caminho certo ?
Obrigado!