cara foi mau não expliquei muito bem, no meu JFrame vendas eu tenho 2 JTable , no qual um faço uma pesquisa dos meus produtos cadastrados e o outro para incluir os produtos e realiza o cadastro de vendas.Quando eu seleciono um produto no Jtable ele aparece os dados no TextField…fazendo assim:
private void jTableProdutosLinhaSelecionada(JTable tb){
if (tb.getSelectedRow()!= -1){
jTextNomeProd.setText(produtos.get(tb.getSelectedRow()).getDescricao());
jTextValorVend.setText(String.valueOf(produtos.get(tb.getSelectedRow()).getValorVenda()));
jTextCor.setText(String.valueOf(produtos.get(tb.getSelectedRow()).getCor()));
jTextQuant.setText("");
}else{
jTextNomeProd.setText("");
jTextValorVend.setText("");
jTextCor.setText("");
}
}
Eu queria incluir o conteúdo a partir dos TextFields no JTable de vendas, para mim cadastrar os produtos na minha tabela vendas no banco de dados. Eu tenho um exemplo aqui mais é feito com Combobox e nesse formulário tem apenas um Jtable, no qual o Combobox lista todos os produtos e eu seleciono o produto e é inserido no Jtable;
O método para incluir do Combobox para o Jtable é esse:
private void incluirProduto(){
if (verificarQuantidade()){
VendasBean vb = new VendasBean();
vb.setCodigoProduto(produtos.get(cbProdutos.getSelectedIndex()).getCodigo());
vb.setQuantidade(Integer.parseInt(String.valueOf(ftfQuantidade.getValue())));
venda.add(vb);
String produto = produtos.get(cbProdutos.getSelectedIndex()).getNome();
String quantidade = String.valueOf(ftfQuantidade.getValue());
String valor = String.valueOf(produtos.get(cbProdutos.getSelectedIndex()).getValor() * Integer.parseInt(quantidade));
String [] campos = new String [] { produto, quantidade, valor};
tmVendas.addRow(campos);
total += Double.parseDouble(valor);
ftfTotal.setValue(total);
} else {
JOptionPane.showMessageDialog(this, "Quantidade inválida!");
ftfQuantidade.requestFocus();
}
}
Aqui está o código que realiza o cadastro…
package br.com.sisvenda;
import br.com.sisvenda.clientes.ClienteBean;
import br.com.sisvenda.clientes.ClienteControl;
import br.com.sisvenda.produtos.ProdutoBean;
import br.com.sisvenda.produtos.ProdutoControl;
import br.com.sisvenda.vendas.VendasBean;
import br.com.sisvenda.vendas.VendasControl;
import java.awt.HeadlessException;
import java.sql.Date;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Cláudio
*/
public class RegistrarVenda extends javax.swing.JFrame {
DefaultTableModel tmVendas = new DefaultTableModel(null, new String[] {"Produto","Quantidade","Valor"});
List<ClienteBean> clientes;
List<ProdutoBean> produtos;
List<VendasBean> venda = new ArrayList<VendasBean>();
double total = 0;
/** Creates new form RegistrarVenda */
public RegistrarVenda() {
initComponents();
listarClientes();
listarProdutos();
}
private void listarProdutos(){
ProdutoControl prd = new ProdutoControl();
produtos = prd.listarProdutos("%%");
cbProdutos.removeAllItems();
for (int i = 0; i < produtos.size(); i++){
cbProdutos.addItem(produtos.get(i).getNome());
}
}
private void listarClientes(){
ClienteControl cli = new ClienteControl();
clientes = cli.listarClientes("%%");
cbClientes.removeAllItems();
for (int i = 0; i < clientes.size(); i++){
cbClientes.addItem(clientes.get(i).getNome());
}
}
private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {
cancelarVenda();
}
private void cancelarVenda(){
while (tmVendas.getRowCount() > 0){
tmVendas.removeRow(0);
}
total = 0;
ftfTotal.setValue(0);
//venda.clear();
this.dispose();
}
private void btFinalizarActionPerformed(java.awt.event.ActionEvent evt) {
cadastrarVenda();
}
private void cadastrarVenda(){
if (venda.size() == 0){
JOptionPane.showMessageDialog(this, "Inclua pelo menos um produto!");
} else {
try {
VendasControl vc = new VendasControl();
SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date d = new java.util.Date();
Date data = Date.valueOf(formato.format(d));
int codigo = vc.buscarCodigoUltimaVenda() + 1;
for (int i = 0; i < venda.size(); i++){
venda.get(i).setCodigoCliente(clientes.get(cbClientes.getSelectedIndex()).getCodigo());
venda.get(i).setDataVenda(data);
venda.get(i).setCodigo(codigo);
vc.cadastrarVenda(venda.get(i));
}
JOptionPane.showMessageDialog(this, "Venda cadastrada com sucesso!");
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "Erro ao cadastrar Venda!");
}
}
}
private void btIncluirProdutoActionPerformed(java.awt.event.ActionEvent evt) {
incluirProduto();
}
private void incluirProduto(){
if (verificarQuantidade()){
VendasBean vb = new VendasBean();
vb.setCodigoProduto(produtos.get(cbProdutos.getSelectedIndex()).getCodigo());
vb.setQuantidade(Integer.parseInt(String.valueOf(ftfQuantidade.getValue())));
venda.add(vb);
String produto = produtos.get(cbProdutos.getSelectedIndex()).getNome();
String quantidade = String.valueOf(ftfQuantidade.getValue());
String valor = String.valueOf(produtos.get(cbProdutos.getSelectedIndex()).getValor() * Integer.parseInt(quantidade));
String [] campos = new String [] { produto, quantidade, valor};
tmVendas.addRow(campos);
total += Double.parseDouble(valor);
ftfTotal.setValue(total);
} else {
JOptionPane.showMessageDialog(this, "Quantidade inválida!");
ftfQuantidade.requestFocus();
}
}
private boolean verificarQuantidade(){
try {
if (Integer.parseInt(String.valueOf(ftfQuantidade.getValue())) > 0){
return true;
}
} catch (NumberFormatException ex) {
ex.printStackTrace();
}
return false;
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new RegistrarVenda().setVisible(true);
}
});
}
// Declaração de variáveis - não modifique
private javax.swing.JButton btCancelar;
private javax.swing.JButton btFinalizar;
private javax.swing.JButton btIncluirProduto;
private javax.swing.JComboBox cbClientes;
private javax.swing.JComboBox cbProdutos;
private javax.swing.JFormattedTextField ftfDesconto;
private javax.swing.JFormattedTextField ftfQuantidade;
private javax.swing.JFormattedTextField ftfTotal;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tbVendas;
// Fim da declaração de variáveis
}
package br.com.sisvenda.vendas;
import java.sql.Date;
/**
*
* @author Cláudio
*/
public class VendasBean {
/** Creates a new instance of VendasBean */
public VendasBean() {
}
private Integer codigo;
private Integer codigoProduto;
private Integer codigoCliente;
private Date dataVenda;
private Integer quantidade;
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public Integer getCodigoProduto() {
return codigoProduto;
}
public void setCodigoProduto(Integer codigoProduto) {
this.codigoProduto = codigoProduto;
}
public Integer getCodigoCliente() {
return codigoCliente;
}
public void setCodigoCliente(Integer codigoCliente) {
this.codigoCliente = codigoCliente;
}
public Date getDataVenda() {
return dataVenda;
}
public void setDataVenda(Date dataVenda) {
this.dataVenda = dataVenda;
}
public Integer getQuantidade() {
return quantidade;
}
public void setQuantidade(Integer quantidade) {
this.quantidade = quantidade;
}
}
package br.com.sisvenda.vendas;
import br.com.sisvenda.acessobd.AcessoFirebird;
import br.com.sisvenda.acessobd.AcessoMySql;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Cláudio
*/
public class VendasControl {
PreparedStatement pstm;
ResultSet rs;
String cadastraVenda = "INSERT INTO VENDAS (CODIGO, PRODUTOS_CODIGO, CLIENTES_CODIGO, DATA_VENDA, QUANTIDADE)" +
" VALUES(?,?,?,?,?)";
String buscaUltimoCodigo = "SELECT MAX(CODIGO) AS CODIGO FROM VENDAS";
String consultaVendas = "SELECT Vendas.codigo, Clientes.nome as nomeCliente, Produtos.nome as nomeProduto"+
"FROM (Vendas LEFT JOIN Clientes ON Vendas.clientes_codigo = Clientes.codigo)"+
"LEFT JOIN Produtos ON Vendas.produtos_codigo = Produtos.codigo"+
"WHERE Vendas.data_venda BETWEEN ? AND ?";
AcessoMySql bd = new AcessoMySql();
//AcessoFirebird bd = new AcessoFirebird();
/** Creates a new instance of VendasControl */
public VendasControl() {
}
public List<VendasBean> listarVendas(Date dataInicial, Date dataFinal){
try {
pstm = bd.conectar().prepareStatement(consultaVendas);
pstm.setDate(1, dataInicial);
pstm.setDate(2, dataFinal);
rs = pstm.executeQuery();
List<VendasBean> venda = new ArrayList<VendasBean>();
while (rs.next()){
VendasBean vb = new VendasBean();
vb.setCodigo(rs.getInt("codigo"));
vb.setCodigoCliente(rs.getInt("clientes_codigo"));
vb.setCodigoProduto(rs.getInt("produtos_codigo"));
vb.setDataVenda(rs.getDate("data_venda"));
vb.setQuantidade(rs.getInt("quantidade"));
venda.add(vb);
}
bd.desconectar();
return venda;
} catch (SQLException ex) {
ex.printStackTrace();
}
return null;
}
public int buscarCodigoUltimaVenda(){
try {
pstm = bd.conectar().prepareStatement(buscaUltimoCodigo);
rs = pstm.executeQuery();
if (rs.last()){
return rs.getInt("codigo");
}
bd.desconectar();
} catch (SQLException ex) {
ex.printStackTrace();
}
return 0;
}
public void cadastrarVenda(VendasBean venda){
try {
pstm = bd.conectar().prepareStatement(cadastraVenda);
pstm.setInt(1, venda.getCodigo());
pstm.setInt(2, venda.getCodigoProduto());
pstm.setInt(3, venda.getCodigoCliente());
pstm.setDate(4, venda.getDataVenda());
pstm.setInt(5, venda.getQuantidade());
pstm.executeUpdate();
bd.desconectar();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
Será que eu fui claro agora…mais por favor to precisando muito disso cara…sou iniciante no java…