os produtos cadastrados não estão aparecendo no Jtable e nem quando clicado no botão pesquisar.
Os produtos estão sendo cadastrado normalmente , mas não esta endo listado apos cadastrado e nem ao clicar no botão pesquisar.
Segue os codigos abaixo:
Camada Visão, tela de produtos
frmProdutos.java
package SistemaJava.view;
import SistemaJava.control.ProdutosControl;
import SistemaJava.model.Produtos;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Marcelo
*/
public class frmProdutos extends javax.swing.JFrame {
/** Creates new form frmProdutos */
public frmProdutos() {
initComponents();
}
ListSelectionModel lsmProdutos;
private boolean isNovoCadastro=false;
private void tbProdutosSelecao(JTable tabela){
if(tabela.getSelectedRow()!= -1){
tfDescricao.setText(listaProdutos.get(tabela.getSelectedRow()).getDescricao());
tfValor.setText(Double.toString(
listaProdutos.get(tabela.getSelectedRow()).getValor()));
tfEstoque.setText(Integer.toString(
listaProdutos.get(tabela.getSelectedRow()).getEstoque()));
tfCodigoFornecedor.setText(Integer.toString(
listaProdutos.get(tabela.getSelectedRow()).getForCodigo()));
desabilitarCampos();
btAlterar.setEnabled(true);
btExcluir.setEnabled(true);
}else{
limparCampos();
btAlterar.setEnabled(false);
btExcluir.setEnabled(false);
}
}
private void limparCampos(){
tfDescricao.setText("");
tfValor.setText("0.00");
tfEstoque.setText("0");
tfCodigoFornecedor.setText("");
tfForNome.setText("");
}
private void habilitarCampos(){
btSalvar.setEnabled(true);
jButton1.setEnabled(true);
tfDescricao.setEnabled(true);
tfValor.setEnabled(true);
tfEstoque.setEnabled(true);
tfCodigoFornecedor.setEnabled(true);
tfForNome.setEnabled(true);
}
private void desabilitarCampos(){
btSalvar.setEnabled(false);
jButton1.setEnabled(false);
tfDescricao.setEnabled(false);
tfValor.setEnabled(false);
tfEstoque.setEnabled(false);
tfCodigoFornecedor.setEnabled(false);
tfForNome.setEnabled(false);
}
DefaultTableModel tmProdutos;
List<Produtos> listaProdutos;
private void listarProdutos(){
ProdutosControl produtosControl = new ProdutosControl();
tmProdutos = (DefaultTableModel) tbProdutos.getModel();
while (tmProdutos.getRowCount()>0){
tmProdutos.removeRow(0);
}
listaProdutos = produtosControl.consultarProdutos(
tfPesquisa.getText().trim());
if(listaProdutos.isEmpty())
{
JOptionPane.showMessageDialog(this, "Nenhum Produto encontrado"
);
}
for(int i=0; i<listaProdutos.size();i++){
tmProdutos.addRow(new String[5]);
tmProdutos.setValueAt(listaProdutos.get(i).getCodigo, i, 0);
tmProdutos.setValueAt(listaProdutos.get(i).getValor, i, 1);
tmProdutos.setValueAt(listaProdutos.get(i).getDescricao, i, 2);
tmProdutos.setValueAt(listaProdutos.get(i).getEstoque, i, 3);
tmProdutos.setValueAt(listaProdutos.get(i).getForCodigo, i, 4);
}
desabilitarCampos();
limparCampos();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
tbProdutos = new javax.swing.JTable();
tfPesquisa = new javax.swing.JTextField();
btPesquisa = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
tfDescricao = new javax.swing.JTextField();
tfValor = new javax.swing.JTextField();
tfEstoque = new javax.swing.JTextField();
tfCodigoFornecedor = new javax.swing.JTextField();
tfForNome = new javax.swing.JTextField();
btNovo = new javax.swing.JButton();
btAlterar = new javax.swing.JButton();
btExcluir = new javax.swing.JButton();
btSalvar = new javax.swing.JButton();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Cadastro de Produtos");
tbProdutos.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null}
},
new String [] {
"Código", "Valor", "Descrição", "Estoque", "Fornecedor"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, true, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tbProdutos.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
lsmProdutos = tbProdutos.getSelectionModel();
lsmProdutos.addListSelectionListener(
new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if(! e.getValueIsAdjusting()){
tbProdutosSelecao(tbProdutos);
}
}
}
);
jScrollPane1.setViewportView(tbProdutos);
btPesquisa.setText("Pesquisar");
btPesquisa.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btPesquisaActionPerformed(evt);
}
});
jLabel1.setText("Descrição:");
jLabel2.setText("Valor:");
jLabel3.setText("Estoque:");
jLabel4.setText("Fornecedor:");
tfDescricao.setEnabled(false);
tfValor.setText("0,00");
tfValor.setEnabled(false);
tfEstoque.setText("0");
tfEstoque.setEnabled(false);
tfCodigoFornecedor.setEnabled(false);
tfForNome.setEnabled(false);
btNovo.setText(" Novo");
btNovo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btNovoActionPerformed(evt);
}
});
btAlterar.setText("Alterar");
btAlterar.setEnabled(false);
btAlterar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btAlterarActionPerformed(evt);
}
});
btExcluir.setText("Excluir");
btExcluir.setEnabled(false);
btExcluir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btExcluirActionPerformed(evt);
}
});
btSalvar.setText("Salvar");
btSalvar.setEnabled(false);
btSalvar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btSalvarActionPerformed(evt);
}
});
jButton1.setText("Pesquisar");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(tfPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, 189, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(31, 31, 31)
.addComponent(btPesquisa))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(18, 18, 18)
.addComponent(tfEstoque, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tfCodigoFornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(tfForNome, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton1))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tfValor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfDescricao, javax.swing.GroupLayout.PREFERRED_SIZE, 286, javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addGroup(layout.createSequentialGroup()
.addGap(43, 43, 43)
.addComponent(btNovo)
.addGap(18, 18, 18)
.addComponent(btAlterar)
.addGap(18, 18, 18)
.addComponent(btExcluir)
.addGap(18, 18, 18)
.addComponent(btSalvar)))
.addContainerGap(15, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(17, 17, 17)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tfPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btPesquisa))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(tfDescricao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(tfValor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(tfEstoque, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(tfCodigoFornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfForNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btNovo)
.addComponent(btAlterar)
.addComponent(btExcluir)
.addComponent(btSalvar))
.addContainerGap())
);
pack();
}// </editor-fold>
public static void importaFornecedor(int codigo, String nome){
tfCodigoFornecedor.setText(String.valueOf(codigo));
tfForNome.setText(nome);
}
private void btPesquisaActionPerformed(java.awt.event.ActionEvent evt) {
listarProdutos();
}
private void btNovoActionPerformed(java.awt.event.ActionEvent evt) {
isNovoCadastro = true;
habilitarCampos();
limparCampos();
}
private void btAlterarActionPerformed(java.awt.event.ActionEvent evt) {
isNovoCadastro = false;
habilitarCampos();
}
private void btSalvarActionPerformed(java.awt.event.ActionEvent evt) {
if(isNovoCadastro){
cadastrarProduto();
}else{
alterarProdutos();
}
}
private void btExcluirActionPerformed(java.awt.event.ActionEvent evt) {
new ProdutosControl().excluirProduto(listaProdutos.get(tbProdutos.getSelectedRow()));
listarProdutos();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
frmLocalizarFornecedor.main(new String[0]);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frmProdutos().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btAlterar;
private javax.swing.JButton btExcluir;
private javax.swing.JButton btNovo;
private javax.swing.JButton btPesquisa;
private javax.swing.JButton btSalvar;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tbProdutos;
private static javax.swing.JTextField tfCodigoFornecedor;
private javax.swing.JTextField tfDescricao;
private javax.swing.JTextField tfEstoque;
private static javax.swing.JTextField tfForNome;
private javax.swing.JTextField tfPesquisa;
private javax.swing.JTextField tfValor;
// End of variables declaration
private void cadastrarProduto() {
if(isCamposPreenchidos()){
Produtos produtos = new Produtos();
produtos.setDescricao(tfDescricao.getText().trim());
produtos.setValor(Double.valueOf(tfValor.getText().trim()));
produtos.setEstoque(Integer.parseInt(tfEstoque.getText().trim()));
produtos.setForCodigo(Integer.parseInt(tfCodigoFornecedor.getText().trim()));
new ProdutosControl().cadastrarProduto(produtos);
listarProdutos();
}
}
private boolean isCamposPreenchidos() {
if(tfDescricao.getText().trim().equals("")){
JOptionPane.showMessageDialog(this, "Preencha o Campo Decrição!");
tfDescricao.requestFocus();
return false;
}
if(tfValor.getText().trim().equals("")){
JOptionPane.showMessageDialog(this, "Preencha o Campo Valor!");
tfValor.requestFocus();
return false;
}
if(tfEstoque.getText().trim().equals("")){
JOptionPane.showMessageDialog(this, "Preencha o Campo Estoque!");
tfEstoque.requestFocus();
return false;
}
if(tfCodigoFornecedor.getText().trim().equals("")){
JOptionPane.showMessageDialog(this, "Informe o Fornecedor!");
tfCodigoFornecedor.requestFocus();
return true;
}
return true;
}
private void alterarProdutos() {
if(isCamposPreenchidos()){
Produtos produtos = new Produtos();
produtos.setCodigo(listaProdutos.get(tbProdutos.getSelectedRow()).getCodigo());
produtos.setDescricao(tfDescricao.getText().trim());
produtos.setValor(Double.valueOf(tfValor.getText().trim()));
produtos.setEstoque(Integer.parseInt(tfEstoque.getText().trim()));
produtos.setForCodigo(Integer.parseInt(tfCodigoFornecedor.getText().trim()));
new ProdutosControl().alterarProduto(produtos);
listarProdutos();
}
}
}
Camada controle
ProdutosControl.java
package SistemaJava.control;
import SistemaJava.AcessoBD.AcessoMySql;
import SistemaJava.model.Produtos;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Marcelo
*/
public class ProdutosControl {
PreparedStatement pstm;
ResultSet rs;
public List<Produtos> consultarProdutos(String descricao){
List<Produtos> listaProdutos = new ArrayList<Produtos>();
AcessoMySql mySql = new AcessoMySql();
String stringConsulta = "SELECT * FROM produtos WHERE proDescricao LIKE ?";
try{
pstm = mySql.conectar().prepareStatement(stringConsulta);
pstm.setString(1, "&" + descricao + "&");
rs = pstm.executeQuery();
while(rs.next()){
Produtos produto = new Produtos();
produto.setCodigo(rs.getInt("proCodigo"));
produto.setValor(rs.getDouble("proValor"));
produto.setDescricao(rs.getString("proDescricao"));
produto.setEstoque(rs.getInt("proEstoque"));
produto.setForCodigo(rs.getInt("proForCodigo"));
produto.setCodigo(rs.getInt("proCodigo"));
listaProdutos.add(produto);
}
mySql.desconectar();
}catch(SQLException e){
}
return listaProdutos;
}
public void cadastrarProduto(Produtos produto){
AcessoMySql MySql = new AcessoMySql();
String stringCadastro = "INSERT INTO produtos VALUES (null,?,?,?,?)";
try{
pstm = MySql.conectar().prepareStatement(stringCadastro);
pstm.setDouble(1, produto.getValor());
pstm.setString(2, produto.getDescricao());
pstm.setInt(3, produto.getEstoque());
pstm.setInt(4, produto.getForCodigo());
pstm.executeUpdate();
MySql.desconectar();
}catch(SQLException e){
e.printStackTrace();
}
}
public void alterarProduto(Produtos produto){
AcessoMySql MySql = new AcessoMySql();
String stringAlterar = "UPDATE produtos SET proValor=?, proDescricao=?,"
+ "proEstoque=?, forCodigo=?, WHERE proCodigo=?";
try{
pstm = MySql.conectar().prepareStatement(stringAlterar);
pstm.setDouble(1, produto.getValor());
pstm.setString(2, produto.getDescricao());
pstm.setInt(3, produto.getEstoque());
pstm.setInt(4, produto.getForCodigo());
pstm.setInt(5, produto.getCodigo());
pstm.executeUpdate();
MySql.desconectar();
}catch(SQLException e){
e.printStackTrace();
}
}
public void excluirProduto(Produtos produto){
AcessoMySql MySql = new AcessoMySql();
String stringExcluir = "DELETE FROM produtos WHERE proCodigo = ?";
try{
pstm = MySql.conectar().prepareStatement(stringExcluir);
pstm.setInt(1, produto.getCodigo());
pstm.executeUpdate();
MySql.desconectar();
}catch(SQLException e){
e.printStackTrace();
}
}
}
e o engraçado é que ao compilar não esta gerando erro.