Aqui o usuario preenche as informações relacionadas ao cliente, e em seguida ele vai add os produtos clicando em Adicionar Produtos, ao clicar em Adicionar Produtos abre-se uma nova Janela:
aqui o usuario irá preencher os dados dos produtos(Produto, Quantidade) o valor unitario e valor total do item são gerados automaticamente, até aqui está tudo ok!
Agora depois que os dados dos produtos foram preenchidos pelo usuario, ele irá salvar o produto na grid(veja na imagem que há uma grid, ele receberá os produtos).
A lógica que eu gostaria:
Toda vez que o usuario clicar em salvar, o produtos e suas informações são salvas na grid, e os campos são limpos para add um novo produto e o ciclo se repete até que todos os produtos estejam add na grid, ao terminar o usuario clicar em fechar e ai sim a janela se fecha, mas eu não tenho a menor ideia de como fazer, neste momento o botão salvar não tem Logica nenhum, está zerado.
Depende de como você quer salvar, se quer salvar apenas na sessão. Faça uma interface e deixe isso salvo numa lista na memória do programa enquanto ele estiver executando, e a lista não for limpa tudo estará salvo lá. Agora se você quer algo mais complexo, você pode fazer da forma mais simples que é criando um arquivo (.TXT/.XML/.YML, etc…) ou então um banco de dados.
Do jeito que essa tabela está, uma venda poderá ter apenas um produto, pois o id do produto está na venda. Tente imaginar um registro nessa tabela de uma venda que tenha mais de um produto.
Se vc quiser vincular um mesmo produto em várias vendas e permitir que uma venda possua mais de um produto, sim. Mas é importante que vc entenda o pq disso. Essa parte da modelagem é importante conhecer.
1º eu voltei a classe ProdutoVendido para o sistema (atualizei no git)
2º Veja que no momento de adicionar um produto para venda, o comboBox não busca mais os produtos e nem o valor Unitario, então como disse antes, vamos por partes…1ª coisa: Como fazer buscar?
Isso, mas não passe os elementos da tela (textfields, comboboxes, etc) para a venda. Vc deve passar o produto e os valores de quantidade (Integer) e o valor produto (Double).