Boa Noite,
Tenho o seguinte problema:
-Tenho uma classe Produtos e uma classe UnidadesMedida, a classe produtos tem uma chave estrangeira para a unidadesmedida.
Preciso fazer o seguinte, preenche um JComboBox do Formulário da Produtos com os valores do SQL da UnidadeMedida e quando selecionar o item no JComboBox preciso gravar no banco de dados na tabela dos produtos o índice da tabela de UnidadesMedia.
Segue abaixo:
- Classe Dao Unidades medida
package edu.asselvi.cadastro;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import edu.asselvi.bancofidelizar.InstrucoesSQL;
public class CadastroUnidadesMedidaDao extends InstrucoesSQL {
protected CadastroUnidadesMedidaDao() throws SQLException {
super();
// TODO Auto-generated constructor stub
}
public void salvar(CadastroUnidadesMedida unidadesmedida)
throws SQLException {
String insert = "INSERT INTO UNIDADE_MEDIDA (descricao, descricao_reduz, fracionario) VALUES (?,?,?)";
insert(insert, unidadesmedida.getDescricao(),
unidadesmedida.getDescricaoReduz(),
unidadesmedida.getFracionario());
}
public void alterar(CadastroUnidadesMedida unidadesmedida)
throws SQLException {
String update = "UPDATE UNIDADE_MEDIDA"
+ "SET DESCRICAO = ?, DESCRICAO_REDUZ = ?, FRANCIONARIO = ?"
+ "WHERE CODIGO = ?";
update(update, unidadesmedida.getCodigo(),
unidadesmedida.getDescricao(),
unidadesmedida.getDescricaoReduz(),
unidadesmedida.getFracionario());
}
public void excluir(long codigo) throws SQLException {
String delete = "DELETE FROM UNIDADE_MEDIDA WHERE CODIGO = ?";
delete(delete, codigo);
}
public List<CadastroUnidadesMedida> findUnidadesMedida()
throws SQLException {
List<CadastroUnidadesMedida> unidadesmedida = new ArrayList<CadastroUnidadesMedida>();
String select = "SELECT * FROM UNIDADE_MEDIDA";
PreparedStatement stmt = getConnection().prepareStatement(select);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
CadastroUnidadesMedida cadastrounidadesmedida = new CadastroUnidadesMedida();
cadastrounidadesmedida.setCodigo(rs.getLong("codigo"));
cadastrounidadesmedida.setDescricao(rs.getString("descricao"));
cadastrounidadesmedida.setDescricaoReduz(rs
.getString("descricao_reduz"));
cadastrounidadesmedida.setFracionario(rs.getString("fracionario"));
unidadesmedida.add(cadastrounidadesmedida);
}
rs.close();
stmt.close();
return unidadesmedida;
}
public CadastroUnidadesMedida findByDescricao(String descricao)
throws SQLException {
String select = "SELECT * FROM UNIDADE_MEDIDA WHERE DESCRICAO LIKE ?";
CadastroUnidadesMedida cadastrounidadesmedida = null;
PreparedStatement stmt = getConnection().prepareStatement(select);
stmt.setString(1, descricao);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
cadastrounidadesmedida = new CadastroUnidadesMedida();
cadastrounidadesmedida.setCodigo(rs.getLong("codigo"));
cadastrounidadesmedida.setDescricao(rs.getString("descricao"));
cadastrounidadesmedida.setDescricaoReduz(rs
.getString("descricao_reduz"));
cadastrounidadesmedida.setFracionario(rs.getString("fracionario"));
}
rs.close();
stmt.close();
return cadastrounidadesmedida;
}
}
Classe Controller UnidadesMedida:
package edu.asselvi.cadastro;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.List;
import javax.swing.JOptionPane;
public class CadastroUnidadesMedidaController {
public void salvar(String descricao, String descricao_reduz,
String fracionario) throws SQLException, ParseException {
CadastroUnidadesMedida cadastrounidadesmedida = new CadastroUnidadesMedida();
cadastrounidadesmedida.setDescricao(descricao);
cadastrounidadesmedida.setDescricaoReduz(descricao_reduz);
cadastrounidadesmedida.setFracionario(fracionario);
new CadastroUnidadesMedidaDao().salvar(cadastrounidadesmedida);
}
public void alterar(Long codigo, String descricao, String descricao_reduz,
String fracionario) throws SQLException, ParseException {
CadastroUnidadesMedida cadastrounidadesmedida = new CadastroUnidadesMedida();
cadastrounidadesmedida.setCodigo(codigo);
cadastrounidadesmedida.setDescricao(descricao);
cadastrounidadesmedida.setDescricaoReduz(descricao_reduz);
cadastrounidadesmedida.setFracionario(fracionario);
new CadastroUnidadesMedidaDao().salvar(cadastrounidadesmedida);
}
public List<CadastroUnidadesMedida> listaunidadesmedida() {
CadastroUnidadesMedidaDao dao = null;
try {
dao = new CadastroUnidadesMedidaDao();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
return dao.findUnidadesMedida();
} catch (SQLException e) {
JOptionPane.showMessageDialog(
null,
"Problemas ao localizar Unidade de Medida"
+ e.getLocalizedMessage());
}
return null;
}
public void excluir(long codigo) throws SQLException {
new CadastroUnidadesMedidaDao().excluir(codigo);
}
public CadastroUnidadesMedida buscaUMPorNome(String descricao)
throws SQLException {
CadastroUnidadesMedidaDao dao = new CadastroUnidadesMedidaDao();
return dao.findByDescricao(descricao);
}
}
Classe UnidadesMedida:
package edu.asselvi.cadastro;
public class CadastroUnidadesMedida {
private Long codigo;
private String descricao;
private String descricao_reduz;
private String fracionario;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getDescricaoReduz() {
return descricao_reduz;
}
public void setDescricaoReduz(String descricao_reduz) {
this.descricao_reduz = descricao_reduz;
}
public String getFracionario() {
return fracionario;
}
public void setFracionario(String fracionario) {
this.fracionario = fracionario;
}
}
FrmCadastroUnidadesMedida:
package edu.asselvi.cadastro;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import edu.asselvi.validacao.ValidacaoTamanhoJTextField;
public class FrmCadastroUnidadesMedida extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private JLabel lbCodigo, lbDescricao, lbDescricaoReduzida, lbEx;
private JTextField txtCodigo, txtDescricao, txtDescricaoReduz,
txtLocalizar;
private JCheckBox chkFracionario;
private JButton btnSalvar, btnAlterar, btnExcluir, btnClear, btnLocalizar;
private JButton btnPrimeiro, btnProximo, btnAnterior, btnUltimo;
private List<CadastroUnidadesMedida> unidadesmedidaList = new CadastroUnidadesMedidaController()
.listaunidadesmedida();
private int registroAtual = 0;
public FrmCadastroUnidadesMedida() {
setTitle("Fidelizar - Fidelização de Clientes - Cadastro de Unidades de Medida");// Definição
// do
// título
// da janela
// define componente de icone para a aplicacao
ImageIcon imagemTituloJanela = new ImageIcon("img/logo.jpg");
setIconImage(imagemTituloJanela.getImage());
getContentPane().setBackground(Color.WHITE);
// centralizacao e tamanho da tela
setSize(480, 340);
setLocationRelativeTo(null);
setModal(true);
Container tela = getContentPane();
lbCodigo = new JLabel("Código");
lbDescricao = new JLabel("Descrição");
lbDescricaoReduzida = new JLabel("Descrição Reduzida");
lbEx = new JLabel("");
lbCodigo.setBounds(20, 20, 240, 15);
lbDescricao.setBounds(200, 20, 240, 15);
lbDescricaoReduzida.setBounds(20, 80, 240, 15);
lbCodigo.setForeground(Color.BLACK);
lbDescricao.setForeground(Color.BLACK);
lbDescricaoReduzida.setForeground(Color.BLACK);
lbCodigo.setFont(new Font("Courier New", Font.BOLD, 14));
lbDescricao.setFont(new Font("Courier New", Font.BOLD, 14));
lbDescricaoReduzida.setFont(new Font("Courier New", Font.BOLD, 14));
tela.add(lbCodigo);
tela.add(lbDescricao);
tela.add(lbDescricaoReduzida);
chkFracionario = new JCheckBox("É Fracionário?");
chkFracionario.setBounds(200, 100, 240, 15);
chkFracionario.setForeground(Color.BLACK);
chkFracionario.setFont(new Font("Courier New", Font.BOLD, 14));
tela.add(chkFracionario);
txtCodigo = new JTextField();
txtDescricao = new JTextField();
txtDescricaoReduz = new JTextField();
txtCodigo.setBounds(20, 40, 120, 25);
txtDescricao.setBounds(200, 40, 240, 25);
txtDescricaoReduz.setBounds(20, 100, 120, 25);
txtCodigo.setEditable(false);
txtDescricao.setDocument(new ValidacaoTamanhoJTextField(20));
txtDescricaoReduz.setDocument(new ValidacaoTamanhoJTextField(3));
tela.add(txtCodigo);
tela.add(txtDescricao);
tela.add(txtDescricaoReduz);
btnSalvar = new JButton("Salvar");
btnAlterar = new JButton("Alterar");
btnExcluir = new JButton("Excluir");
btnClear = new JButton("Limpar");
btnPrimeiro = new JButton("|<");
btnAnterior = new JButton("<<");
btnProximo = new JButton(">>");
btnUltimo = new JButton(">|");
btnSalvar.setBounds(95, 240, 80, 30);
btnAlterar.setBounds(190, 240, 80, 30);
btnExcluir.setBounds(285, 240, 80, 30);
tela.add(btnSalvar);
tela.add(btnAlterar);
tela.add(btnExcluir);
btnPrimeiro.setBounds(90, 150, 50, 20);
btnAnterior.setBounds(140, 150, 50, 20);
btnClear.setBounds(190, 150, 75, 20);
btnProximo.setBounds(265, 150, 50, 20);
btnUltimo.setBounds(315, 150, 50, 20);
tela.add(btnPrimeiro);
tela.add(btnAnterior);
tela.add(btnClear);
tela.add(btnProximo);
tela.add(btnUltimo);
JLabel lbLocalizar = new JLabel("Pesquisar por Descrição:");
lbLocalizar.setBounds(20, 180, 220, 25);
txtLocalizar = new JTextField();
txtLocalizar.setBounds(20, 200, 240, 25);
btnLocalizar = new JButton("Pesquisa");
btnLocalizar.setBounds(270, 200, 90, 25);
tela.add(lbLocalizar);
tela.add(txtLocalizar);
tela.add(btnLocalizar);
tela.add(lbEx);
btnSalvar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickSalvar();
}
});
btnAlterar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickAlterar();
}
});
btnExcluir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickExcluir();
}
});
btnClear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
clearFields();
registroAtual = 0;
}
});
btnLocalizar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickLocalizar();
}
});
btnPrimeiro.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickPrimeiro();
}
});
btnAnterior.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickAnterior();
}
});
btnProximo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickProximo();
}
});
btnUltimo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickUltimo();
}
});
}
private void onClickUltimo() {
registroAtual = unidadesmedidaList.size() - 1;
getValores(registroAtual);
}
private void onClickProximo() {
if (registroAtual != unidadesmedidaList.size() - 1) {
getValores(++registroAtual);
}
}
private void onClickAnterior() {
if (registroAtual != 0) {
getValores(--registroAtual);
}
}
private void onClickPrimeiro() {
registroAtual = 0;
getValores(registroAtual);
}
private void getValores(int index) {
if (index <= unidadesmedidaList.size() - 1) {
CadastroUnidadesMedida UMAtual = unidadesmedidaList.get(index);
txtDescricao.setText(UMAtual.getDescricao());
txtCodigo.setText(UMAtual.getCodigo().toString());
txtDescricaoReduz.setText(UMAtual.getDescricaoReduz());
if (UMAtual.getFracionario().toUpperCase().equals("S")) {
chkFracionario.setSelected(true);
// System.out.println(UMAtual.getFracionario());
} else {
chkFracionario.setSelected(false);
// System.out.println(UMAtual.getFracionario());
}
}
}
private void onClickAlterar() {
CadastroUnidadesMedidaController cc = new CadastroUnidadesMedidaController();
long codigo = unidadesmedidaList.get(registroAtual).getCodigo();
try {
cc.alterar(codigo, txtDescricao.getText(),
txtDescricaoReduz.getText(),
chkFracionario.isSelected() == true ? "S" : "N");
JOptionPane.showMessageDialog(this,
"Unidade de Medida alterada com sucesso!");
//clearFields();
unidadesmedidaList = new CadastroUnidadesMedidaController()
.listaunidadesmedida();
} catch (SQLException e) {
JOptionPane.showMessageDialog(
this,
"Não foi possivel alterar Unidade de Medida!n"
+ e.getLocalizedMessage());
} catch (ParseException e) {
JOptionPane.showMessageDialog(this, "Existem dados inválidos!"
+ " " + e.getLocalizedMessage());
}
}
private void onClickSalvar() {
CadastroUnidadesMedidaController cc = new CadastroUnidadesMedidaController();
try {
cc.salvar(txtDescricao.getText(), txtDescricaoReduz.getText(),
chkFracionario.isSelected() == true ? "S" : "N");
JOptionPane.showMessageDialog(this,
"Unidade de Medida salva com sucesso!");
clearFields();
onClickLocalizar();
unidadesmedidaList = new CadastroUnidadesMedidaController()
.listaunidadesmedida();
} catch (SQLException e) {
JOptionPane.showMessageDialog(
this,
"Nao foi possivel salvar a Unidade de Medida!" + " "
+ e.getLocalizedMessage());
} catch (ParseException e) {
JOptionPane.showMessageDialog(
this,
"Unidade de Medida possui dados inválidos!" + " "
+ e.getLocalizedMessage());
}
}
private void onClickExcluir() {
CadastroUnidadesMedidaController cc = new CadastroUnidadesMedidaController();
System.out.println(txtCodigo.getText());
Long codigo = Long.valueOf(txtCodigo.getText());
try {
cc.excluir(codigo);
JOptionPane.showMessageDialog(this,
"Unidade de Medida excluída com sucesso!");
clearFields();
unidadesmedidaList = new CadastroUnidadesMedidaController()
.listaunidadesmedida();
} catch (SQLException e) {
JOptionPane.showMessageDialog(
this,
"Nao foi possivel excluir a unidade de medida!" + " "
+ e.getLocalizedMessage());
}
}
private void onClickLocalizar() {
CadastroUnidadesMedidaController cc = new CadastroUnidadesMedidaController();
try {
CadastroUnidadesMedida c = cc.buscaUMPorNome("%"
+ txtLocalizar.getText() + "%");
txtDescricao.setText(c.getDescricao());
txtCodigo.setText(c.getCodigo().toString());
txtDescricaoReduz.setText(c.getDescricaoReduz());
// System.out.println(c.getFracionario());
if (c.getFracionario().toUpperCase().equals("S")) {
chkFracionario.setSelected(true);
} else {
chkFracionario.setSelected(false);
}
;
// Long Codigo = (c.getCodigo());
} catch (SQLException e) {
JOptionPane.showMessageDialog(
this,
"Ocorreu um erro, tente novamente!" + " "
+ e.getLocalizedMessage());
} catch (NullPointerException e) {
JOptionPane.showMessageDialog(this,
"Unidade de Medida não localizada ou não existe!" + " "
// + e.getLocalizedMessage()
);
}
}
private void clearFields() {
txtDescricao.setText("");
txtCodigo.setText("");
txtDescricaoReduz.setText("");
chkFracionario.setSelected(false);
}
public static void main(String args[]) {
new FrmCadastroUnidadesMedida().setVisible(true);
}
}
Dao Produtos:
package edu.asselvi.cadastro;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import edu.asselvi.bancofidelizar.InstrucoesSQL;
public class CadastroProdutosDao extends InstrucoesSQL {
protected CadastroProdutosDao() throws SQLException {
super();
// TODO Auto-generated constructor stub
}
public void salvar(CadastroProdutos produtos) throws SQLException {
String insert = "INSERT INTO PRODUTO (descricao, cod_unidademedida, ativa) VALUES (?,?,?)";
insert(insert, produtos.getDescricao(), produtos.getCodUnidadeMedida(),
produtos.getAtivo());
}
public void alterar(CadastroProdutos produtos) throws SQLException {
String update = "UPDATE PRODUTO "
+ "SET DESCRICAO = ?, COD_UNIDADEMEDIDA = ?, ATIVA = ?"
+ "WHERE CODIGO = ?";
update(update, produtos.getCodigo(), produtos.getDescricao(),
produtos.getCodUnidadeMedida(), produtos.getAtivo());
}
public void excluir(long codigo) throws SQLException {
String delete = "DELETE FROM PRODUTO WHERE CODIGO = ?";
delete(delete, codigo);
}
public List<CadastroProdutos> findProdutos() throws SQLException {
List<CadastroProdutos> produtos = new ArrayList<CadastroProdutos>();
String select = "SELECT * FROM PRODUTO";
PreparedStatement stmt = getConnection().prepareStatement(select);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
CadastroProdutos cadastroproduto = new CadastroProdutos();
cadastroproduto.setCodigo(rs.getLong("codigo"));
cadastroproduto.setDescricao(rs.getString("descricao"));
cadastroproduto
.setCodUnidadeMedida(rs.getLong("cod_unidademedida"));
cadastroproduto.setAtiva(rs.getString("ativa"));
produtos.add(cadastroproduto);
}
rs.close();
stmt.close();
return produtos;
}
public CadastroProdutos findByDescricao(String descricao)
throws SQLException {
String select = "SELECT * FROM PRODUTO WHERE DESCRICAO LIKE ?";
CadastroProdutos cadastroprodutos = null;
PreparedStatement stmt = getConnection().prepareStatement(select);
stmt.setString(1, descricao);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
cadastroprodutos = new CadastroProdutos();
cadastroprodutos.setCodigo(rs.getLong("codigo"));
cadastroprodutos.setDescricao(rs.getString("descricao"));
cadastroprodutos.setCodUnidadeMedida(rs
.getLong("cod_unidademedida"));
cadastroprodutos.setAtiva(rs.getString("ativa"));
}
rs.close();
stmt.close();
return cadastroprodutos;
}
}
Controller Produtos:
package edu.asselvi.cadastro;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.List;
import javax.swing.JOptionPane;
public class CadastroProdutosController {
public void salvar(String descricao, Long codunidademedida, String ativa)
throws SQLException, ParseException {
CadastroProdutos cadastroprodutos = new CadastroProdutos();
cadastroprodutos.setDescricao(descricao);
cadastroprodutos.setCodUnidadeMedida(codunidademedida);
cadastroprodutos.setAtiva(ativa);
new CadastroProdutosDao().salvar(cadastroprodutos);
}
public void alterar(Long codigo, String descricao, Long codunidademedida,
String ativa) throws SQLException, ParseException {
CadastroProdutos cadastroprodutos = new CadastroProdutos();
cadastroprodutos.setCodigo(codigo);
cadastroprodutos.setDescricao(descricao);
cadastroprodutos.setCodUnidadeMedida(codunidademedida);
cadastroprodutos.setAtiva(ativa);
new CadastroProdutosDao().alterar(cadastroprodutos);
}
public List<CadastroProdutos> listaprodutos() {
CadastroProdutosDao dao = null;
try {
dao = new CadastroProdutosDao();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
return dao.findProdutos();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null,
"Problemas ao localizar produto" + e.getLocalizedMessage());
}
return null;
}
public void excluir(long codigo) throws SQLException {
new CadastroProdutosDao().excluir(codigo);
}
public CadastroProdutos buscaProdutosPorDescricao(String descricao)
throws SQLException {
CadastroProdutosDao dao = new CadastroProdutosDao();
return dao.findByDescricao(descricao);
}
}
Classe Produtos:
package edu.asselvi.cadastro;
public class CadastroProdutos {
private Long codigo;
private String descricao;
private Long codunidademedida;
private String ativa;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Long getCodUnidadeMedida() {
return codunidademedida;
}
public void setCodUnidadeMedida(Long codunidademedida) {
this.codunidademedida = codunidademedida;
}
public String getAtivo() {
return ativa;
}
public void setAtiva(String ativa) {
this.ativa = ativa;
}
}
FrmCadastroProdutos:
package edu.asselvi.cadastro;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import edu.asselvi.validacao.ValidacaoTamanhoJTextField;
public class FrmCadastroProdutos extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private JLabel lbCodigo, lbDescricao, lbUnidadeMedida, lbEx;
private JTextField txtCodigo, txtDescricao, txtLocalizar;
private JCheckBox chkAtivo;
private JComboBox comboUnidadeMedida;
private JButton btnSalvar, btnAlterar, btnExcluir, btnClear, btnLocalizar;
private JButton btnPrimeiro, btnProximo, btnAnterior, btnUltimo;
private List<CadastroProdutos> produtosList = new CadastroProdutosController()
.listaprodutos();
private int registroAtual = 0;
public FrmCadastroProdutos() {
setTitle("Fidelizar - Fidelização de Clientes - Cadastro de Produtos");// Definição
// do
// título
// da janela
// define componente de icone para a aplicacao
ImageIcon imagemTituloJanela = new ImageIcon("img/logo.jpg");
setIconImage(imagemTituloJanela.getImage());
getContentPane().setBackground(Color.WHITE);
// centralizacao e tamanho da tela
setSize(480, 360);
setLocationRelativeTo(null);
setModal(true);
Container tela = getContentPane();
lbCodigo = new JLabel("Código");
lbDescricao = new JLabel("Descricao");
lbUnidadeMedida = new JLabel("Unidade de Medida");
lbEx = new JLabel("");
lbCodigo.setBounds(20, 20, 240, 15);
lbDescricao.setBounds(200, 20, 240, 15);
lbUnidadeMedida.setBounds(20, 80, 240, 15);
lbCodigo.setForeground(Color.BLACK);
lbDescricao.setForeground(Color.BLACK);
lbUnidadeMedida.setForeground(Color.BLACK);
lbCodigo.setFont(new Font("Courier New", Font.BOLD, 14));
lbDescricao.setFont(new Font("Courier New", Font.BOLD, 14));
lbUnidadeMedida.setFont(new Font("Courier New", Font.BOLD, 14));
tela.add(lbCodigo);
tela.add(lbDescricao);
tela.add(lbUnidadeMedida);
chkAtivo = new JCheckBox("Ativo");
chkAtivo.setBounds(250, 100, 190, 15);
chkAtivo.setForeground(Color.BLACK);
chkAtivo.setFont(new Font("Courier New", Font.BOLD, 14));
tela.add(chkAtivo);
txtCodigo = new JTextField();
txtDescricao = new JTextField();
txtCodigo.setBounds(20, 40, 120, 25);
txtDescricao.setBounds(200, 40, 240, 25);
txtCodigo.setEditable(false);
txtDescricao.setDocument(new ValidacaoTamanhoJTextField(45));
tela.add(txtCodigo);
tela.add(txtDescricao);
btnSalvar = new JButton("Salvar");
btnAlterar = new JButton("Alterar");
btnExcluir = new JButton("Excluir");
btnClear = new JButton("Limpar");
btnPrimeiro = new JButton("|<");
btnAnterior = new JButton("<<");
btnProximo = new JButton(">>");
btnUltimo = new JButton(">|");
btnSalvar.setBounds(95, 280, 80, 30);
btnAlterar.setBounds(190, 280, 80, 30);
btnExcluir.setBounds(285, 280, 80, 30);
tela.add(btnSalvar);
tela.add(btnAlterar);
tela.add(btnExcluir);
btnPrimeiro.setBounds(90, 200, 50, 20);
btnAnterior.setBounds(140, 200, 50, 20);
btnClear.setBounds(190, 200, 75, 20);
btnProximo.setBounds(265, 200, 50, 20);
btnUltimo.setBounds(315, 200, 50, 20);
tela.add(btnPrimeiro);
tela.add(btnAnterior);
tela.add(btnClear);
tela.add(btnProximo);
tela.add(btnUltimo);
JLabel lbLocalizar = new JLabel("Pesquisar por Descrição:");
lbLocalizar.setBounds(20, 225, 220, 25);
txtLocalizar = new JTextField();
txtLocalizar.setBounds(20, 245, 240, 25);
btnLocalizar = new JButton("Pesquisa");
btnLocalizar.setBounds(270, 245, 90, 25);
tela.add(lbLocalizar);
tela.add(txtLocalizar);
tela.add(btnLocalizar);
/*
* CadastroUnidadesMedidaController cc = new
* CadastroUnidadesMedidaController(); try { CadastroUnidadesMedida c =
* cc.buscaUMPorNome("%" + "%");
* comboUnidadeMedida.addItem(c.getDescricao()); } catch (SQLException
* e) { JOptionPane.showMessageDialog( this,
* "Ocorreu um erro, tente novamente!" + " " + e.getLocalizedMessage());
* ;
*/
tela.add(lbEx);
btnSalvar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickSalvar();
}
});
btnAlterar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickAlterar();
}
});
btnExcluir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickExcluir();
}
});
btnClear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
clearFields();
registroAtual = 0;
}
});
btnLocalizar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickLocalizar();
}
});
btnPrimeiro.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickPrimeiro();
}
});
btnAnterior.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickAnterior();
}
});
btnProximo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickProximo();
}
});
btnUltimo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onClickUltimo();
}
});
}
private void onClickUltimo() {
registroAtual = produtosList.size() - 1;
getValores(registroAtual);
}
private void onClickProximo() {
if (registroAtual != produtosList.size() - 1) {
getValores(++registroAtual);
}
}
private void onClickAnterior() {
if (registroAtual != 0) {
getValores(--registroAtual);
}
}
private void onClickPrimeiro() {
registroAtual = 0;
getValores(registroAtual);
}
private void getValores(int index) {
if (index <= produtosList.size() - 1) {
CadastroProdutos produtoAtual = produtosList.get(index);
txtDescricao.setText(produtoAtual.getDescricao());
txtCodigo.setText(produtoAtual.getCodigo().toString());
if (produtoAtual.getAtivo().toUpperCase().equals("S")) {
chkAtivo.setSelected(true);
// System.out.println(UMAtual.getFracionario());
} else {
chkAtivo.setSelected(false);
// System.out.println(UMAtual.getFracionario());
}
}
}
private void onClickAlterar() {
CadastroProdutosController cc = new CadastroProdutosController();
long codigo = produtosList.get(registroAtual).getCodigo();
try {
cc.alterar(codigo, txtDescricao.getText(), (long) 1,
chkAtivo.isSelected() == true ? "S" : "N");
JOptionPane
.showMessageDialog(this, "Produto alterado com sucesso!");
// clearFields();
produtosList = new CadastroProdutosController().listaprodutos();
} catch (SQLException e) {
JOptionPane.showMessageDialog(
this,
"Não foi possivel alterar Produto!n"
+ e.getLocalizedMessage());
} catch (ParseException e) {
JOptionPane.showMessageDialog(this, "Existem dados inválidos!"
+ " " + e.getLocalizedMessage());
}
}
private void onClickSalvar() {
CadastroProdutosController cc = new CadastroProdutosController();
try {
cc.salvar(txtDescricao.getText(), (long) 1,
chkAtivo.isSelected() == true ? "S" : "N");
JOptionPane.showMessageDialog(this, "Produto salvo com sucesso!");
clearFields();
onClickLocalizar();
produtosList = new CadastroProdutosController().listaprodutos();
} catch (SQLException e) {
JOptionPane.showMessageDialog(
this,
"Nao foi possivel salvar Produto!" + " "
+ e.getLocalizedMessage());
} catch (ParseException e) {
JOptionPane.showMessageDialog(
this,
"Produto possui dados inválidos!" + " "
+ e.getLocalizedMessage());
}
}
private void onClickExcluir() {
CadastroProdutosController cc = new CadastroProdutosController();
System.out.println(txtCodigo.getText());
Long codigo = Long.valueOf(txtCodigo.getText());
try {
cc.excluir(codigo);
JOptionPane
.showMessageDialog(this, "Produto excluido com sucesso!");
clearFields();
produtosList = new CadastroProdutosController().listaprodutos();
} catch (SQLException e) {
JOptionPane.showMessageDialog(
this,
"Nao foi possivel excluir o produto!" + " "
+ e.getLocalizedMessage());
}
}
private void onClickLocalizar() {
CadastroProdutosController cc = new CadastroProdutosController();
try {
CadastroProdutos c = cc.buscaProdutosPorDescricao("%"
+ txtLocalizar.getText() + "%");
txtDescricao.setText(c.getDescricao());
txtCodigo.setText(c.getCodigo().toString());
if (c.getAtivo().toUpperCase().equals("S")) {
chkAtivo.setSelected(true);
} else {
chkAtivo.setSelected(false);
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(
this,
"Ocorreu um erro, tente novamente!" + " "
+ e.getLocalizedMessage());
} catch (NullPointerException e) {
JOptionPane.showMessageDialog(this,
"Produto não localizado ou não existe!" + " "
// + e.getLocalizedMessage()
);
}
}
private void clearFields() {
txtDescricao.setText("");
txtCodigo.setText("");
chkAtivo.setSelected(false);
}
public static void main(String args[]) {
new FrmCadastroProdutos().setVisible(true);
}
}
Pessoal sou iniciante em java e desde já agradeço a atenção de quem puder ajudar.