Jtable com ordem de produtos

5 respostas
jtableprogramaçãojava
Camila_Gabrielly

Olá pessoinhas, eu tenho uma classe pra modelo de tabela, e uma classe pra preencher a tabela com o banco de dados.
O que eu quero saber como posso Adicionar uma Coluna que não consulte ao banco que contenha a ordem dos Itens por exemplo.
Considere as aspas uma Coluna.
“Codigo(busca no banco)” “Item” “Produto(busca no banco)”,
343 1 lapis
686 2 borracha

Como poderia fazer a coluna item??

Abaixo segue como está hoje o preenchimento da minha tabela

import java.sql.*;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;


public class Tabela  extends AbstractTableModel{
private int numLinhas;
private ArrayList<String[]> dados;
private ResultSetMetaData rsmd;
private static final String[] titulo = 
{"Código","Cód. Barras","Descrição","Valor Unitário","Quantidade","Valor Total"};


public String getColumnName(int qtdcolunas){
return titulo[qtdcolunas];
}
public Tabela(ResultSet rs) throws SQLException{
setRs(rs);
}
public void setRs(ResultSet rs) throws SQLException{
dados = new ArrayList<String[]>();
    while(rs.next()){
        String[] linha ={
            
            rs.getString("codigo"),
            rs.getString("codbarras"),
            rs.getString("descricao_produto"),
            rs.getString("valor_unitario"),
            rs.getString("quantidade"),
            rs.getString("valor_total")};
        dados.add(linha);
    }
    fireTableStructureChanged();
    

}
@Override
public int getRowCount(){
return dados.size();
}
@Override
public int getColumnCount(){
return titulo.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex){
   String[] linha = dados.get(rowIndex);
   return linha[columnIndex];
}
public void deletarLinha(int linha){
   dados.remove(linha);
   fireTableRowsDeleted(linha, linha);
}

        

 
}

5 Respostas

drsmachado

Bom, o ideal seria isolar as diferentes operações. Veja bem, você pode ter uma classe com um método que vá ao banco e devolva uma lista pronta, sem a necessidade de retornar o resultset.
Pode ter outra classe que apenas seja o TableModel,
Se fizer isso, conseguirá inserir quaisquer valores em quaisquer colunas. Além de conseguir inserir ou remover colunas que desejar.

Camila_Gabrielly

Como assim devolva uma lista pronta?

drsmachado

public List<Pessoa> listarPessoas(){ List<Pessoa> pessoas = new ArrayList<Pessoa>(); try { String query = "SELECT id, nome, email FROM pessoa"; //Aqui o objeto Connection já está instanciado stm = con.prepareStatement(query); stm.execute(); rs = stm.getResultSet(); while(rs.next()){ Pessoa p = new Pessla(); p.setId(rs.getInt("id")); p.setNome(rs.getString("nome")); p.setEmail(rs.getString("email")); pessoas.add(p); } catch (Exception ex){ //trata a excecao } return pessoas; }
Viu?

Camila_Gabrielly

e então lá eu só instancio pra aplicar o modelo que eu quero?

drsmachado

A partir do momento que você possui a lista, você pode fazer como melhor entender.

Criado 15 de fevereiro de 2017
Ultima resposta 15 de fev. de 2017
Respostas 5
Participantes 2