Olá,
estou tentando aprender abstracttablemodel aquela $#$#($ para fugir daquela tabela que clica e arrasta, mas minha luta para aprender isso não está sendo fácil,
então estou recorrendo aqui para tentar obter ajuda.
…
fiz o metodo que lista no produto dao
…
public List listarProduto() throws SQLException{
String sql = “SELECT * FROM produto”;
this.stmt = con.prepareStatement(sql);
this.rs = this.stmt.executeQuery();
List<Produto> ps = new ArrayList<Produto>();
while(rs.next()){
Produto p = new Produto();
p.setId(rs.getInt("id"));
p.setDescricao(rs.getString("descricao"));
p.setQtd(rs.getInt("qtd"));
p.setValor(rs.getDouble("valor"));
ps.add(p);
}
stmt.close();
rs.close();
con.close();
return ps;
}
…
agora que listar no tabela que estou criando. Se fosse naquela tabela (aquela que arrasta) não teria problema, mas como estoou tentando adicionar a abstracttablemodel tá dificil.
se alguém poder ajudar agradeço.
pois já faz tendo que estou tendando aprender essa coisa.
a AbstractTableModel que estou tentando criar está assim
public class TabelaProduto extends AbstractTableModel{
private List<Produto> dados = new ArrayList<>();
private String[] colunas = {"ID","Descricao", "QTD", "Valor"};
@Override
public String getColumnName(int i) {
return colunas[i];
}
public void addRow(Produto p){
dados.add(p);
fireTableDataChanged();
}
public void removerRow(int linha){
this.dados.remove(linha);
fireTableRowsDeleted(linha, linha);
}
@Override
public int getRowCount() {
return dados.size();
}
@Override
public int getColumnCount() {
return colunas.length;
}
@Override
public Object getValueAt(int linha, int coluna) {
switch(coluna){
case 0:
return dados.get(linha).getDescricao();
case 1:
return dados.get(linha).getQtd();
case 2:
return dados.get(linha).getValor();
}
return null;
}
@Override
public void setValueAt(Object valor, int linha, int coluna){
switch(coluna){
case 0:
dados.get(linha).setDescricao((String)valor);
break;
case 1:
dados.get(linha).setQtd(Integer.parseInt((String)valor));
break;
case 2:
dados.get(linha).setValor(Double.parseDouble((String) valor));
break;
}
fireTableRowsUpdated(linha, linha);
}
}
na tela que é instaciada está
TabelaProduto tabelaProduto = new TabelaProduto();
public TelaProduto() {
initComponents();
tblProduto.setModel(tabelaProduto);
// montarTabela();
}
…