Modulo vendas Swing

4 respostas Resolvido
java
igoralves

Boa tarde Pessoal, gostaria de tirar algumas duvidas , estou tentando desenvolver algo legal sem gambiarra.

1- A primeira duvida seria sobre o fechar venda, eu possuo duas tabelas onde uma vai ficar o numero do pedido e os produtos , e na outra os dados do cliente e numero do pedido

E possivel capturar os dados da jtable para inserir na base de dados ??’
O certo e fazer dois insert separados ?

4 Respostas

Jonathan_Medeiros

Dá pra recuperar sim, pesquise sobre o método getValueAt.

Sim, você deve fazer inserts separados porém dentro de uma única transação, para em casos de erros poder aplicar o rollback.

igoralves

Entendi, estou tentando aplicar nesse seguinte contexto

List<ProdutoPedido> list = new ArrayList<ProdutoPedido>();
    ProdutoPedido pd = new ProdutoPedido();
    DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    for(int i =0 ; i < model.getRowCount() ; i++){
        pd.setCodigo((String) model.getValueAt(i, 0));
        list.add(pd);
    }

Montei uma classe PedidoProduto e na jframe coloquei um botao para fechar a venda e estou fazendo o debug(esta retorando a informacao que eu preciso) porem eu BUGUEI rs , pra que eu consiga dar um setcodigo do objeto eu preciso dar um cast para String , feito isso estou tentando adicionar o objeto na lista porem nao estou conseguindo, to fazendo algo de errado ??

Jonathan_Medeiros
Solucao aceita

Você está sempre sobrescrevendo o mesmo objeto em todas as iterações do loop, para cada iteração você deve criar um novo objeto atribuir nele as informações que julgar necessário e depois adicionar na lista.

igoralves

Entendi , muito obrigado Jonathan

Segue a resolucao

List<ProdutoPedido> list = new ArrayList<ProdutoPedido>();
    
    DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    for(int i =0 ; i < model.getRowCount() ; i++){
        ProdutoPedido pd = new ProdutoPedido();
        pd.setCodigo((String) model.getValueAt(i, 0));
        list.add(pd);
    }
Criado 5 de maio de 2019
Ultima resposta 5 de mai. de 2019
Respostas 4
Participantes 2