Olá a todos do forum, tudo bem?
Seguinte, eu fiz um rápido (mt rápido mesmo) curso basico de java, so para ter noções de alguns comandos, e agora estou
tentando montar um projeto simples, um cadastro.
Ja criei o Banco de dados e estou utilizando uma classe ProdutoDAO para fazer a comunicação.
Utilizo uma classe chamada CadastraProduto para criar a tela e os campos, alem do botão que envia os dados para a classe
DAO e de lá para o Banco.
Pois bem, estou tentando fazer o seguinte:
Tenho no Banco o campo: descrição, que é um campo de Strings.
Gostaria de usar as informações desse campo para alimentar uma JComboBox. Aí está o problema.
Ja ví varios topicos, cada um explicando uma forma diferente, mais como não fiz um curso decente, algum comandos eu não entendo
direito, como o Iterator e o Statement .
Se alguem aqui do Forum puder criar um codigo e me explicar como criar essa JComboBox eu ficaria muito Feliz =]
Ja faz 3 dias que estou tentando aprender, lendo e tudo, mais na hora de fazer nunca da certo.
Vou tentar colocar uma parte do meu Codigo aki, se estiver errado, por favor me corrijam, ainda estou aprendendo =)
MEU ProdutoDAO
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import model.Produto;
import util.ConnectionFactory;
public class ProdutoDAO {
private static Connection conexao;
@SuppressWarnings("static-access")
public void ConnectionFactory() throws SQLException{
ConnectionFactory con = new ConnectionFactory();
conexao = con.getConnection();
}
public void salvar(Produto produto)throws SQLException{
this.ConnectionFactory();
try {
String sql = "insert into produto (codProduto, descricao, procoCusto, qtdMinima, qtdMaxima) values (?,?,?,?,?)";
PreparedStatement query = this.conexao.prepareStatement(sql);
query.setInt(1, produto.getCodProduto());
query.setString(2, produto.getDescricao());
query.setFloat(3, produto.getPrecoCusto());
query.setInt(4, produto.getQtdMinima());
query.setInt(5, produto.getQtdMaxima());
query.execute();
query.close();
} catch (Exception e) {
System.out.println("erro ao salvar" + e.getMessage());
conexao.commit();
conexao.close();
}
}
public void remover(Produto produto) throws SQLException {
this.ConnectionFactory();
String sql = "delete from produto where codProduto = ?";
try {
PreparedStatement query = this.conexao.prepareStatement(sql);
query.setInt(1, produto.getCodProduto());
query.execute();
query.close();
}catch (Exception e){
e.printStackTrace();
conexao.commit();
conexao.close();
}
}
public void atualizar(Produto produto)throws SQLException{
this.ConnectionFactory();
String sql = "update produto set descricao = ?, set precoCusto = ?, set qtdMinima = ?, set qtd Maxima = ?, where codProduto = ?";
try{
PreparedStatement query = this.conexao.prepareStatement(sql);
query.setString(1, produto.getDescricao());
query.setFloat(2, produto.getPrecoCusto());
query.setInt(3, produto.getQtdMinima());
query.setInt(4, produto.getQtdMaxima());
query.setInt(5, produto.getCodProduto());
query.execute();
query.close();
}catch (Exception e){
System.out.println("Erro no Banco");
conexao.commit();
conexao.close();
}
}
public List<Produto> buscar(String busca, String param) throws SQLException{
this.ConnectionFactory();
String sql = "select * from produto";
PreparedStatement query = this.conexao.prepareStatement(sql);
ResultSet result = query.executeQuery();
List<Produto> listagens = new ArrayList<Produto>();
if(param.equalsIgnoreCase("descricao")){
while (result.next()){
Produto listagem = new Produto();
if (busca.equals(result.getString("descricao"))){
listagem.setCodProduto(result.getInt("codProduto"));
listagem.setDescricao(result.getString("descricao"));
listagem.setPrecoCusto(result.getFloat("precoCusto"));
listagem.setQtdMinima(result.getInt("qtdMinima"));
listagem.setQtdMaxima(result.getInt("qtdMaxima"));
listagens.add(listagem);
}
}
}
result.close();
query.close();
return listagens;
}
}
Classe CadastraProduto
package teste;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import dao.ListagemDAO;
import dao.ProdutoDAO;
import model.Listagem;
public class CadastraProduto {
private JFrame janela;
private JPanel cadastra;
private JButton salvar;
private JLabel lblDescricao;
private JLabel lblCod;
private JLabel lblPrecoCusto;
private JLabel lblQtdMinima;
private JLabel lblQtdMaxima;
private JTextField txtDescricao;
private JTextField txtCod;
private JTextField txtPrecoCusto;
private JTextField txtQtdMinima;
private JTextField txtQtdMaxima;
private JComboBox comboBox;
public void criaTelaCadastro(){
janela = new JFrame("Cadastro Produtos");
janela.setLayout(null);
janela.setSize(600,400);
cadastra = new JPanel();
cadastra.setBounds(1,1,600,600);
cadastra = (JPanel) janela.getContentPane();
lblCod = new JLabel("Codigo: ");
lblCod.setBounds(1,1,100,30);
lblDescricao = new JLabel("Descrição: ");
lblDescricao.setBounds(1,33,100,30);
lblPrecoCusto = new JLabel("PrecoCusto: ");
lblPrecoCusto.setBounds(1,66,100,30);
lblQtdMaxima = new JLabel("Quantidade Maxima");
lblQtdMaxima.setBounds(1,99,100,30);
lblQtdMinima = new JLabel("quantidade Minima");
lblQtdMinima.setBounds(1,123,100,30);
txtCod = new JTextField();
txtCod.setBounds(43,5,300,20);
txtDescricao = new JTextField();
txtDescricao.setBounds(63,38,300,20);
txtPrecoCusto = new JTextField();
txtPrecoCusto.setBounds(83,70,300,20);
txtQtdMaxima = new JTextField();
txtQtdMaxima.setBounds(103,120,300,20);
txtQtdMinima = new JTextField();
txtQtdMinima.setBounds(123,140,300,20);
salvar = new JButton("Salvar");
salvar.setBounds(1,109,100,30);
salvar.addActionListener(new Salvar());
cadastra.add(salvar);
cadastra.add(lblCod);
cadastra.add(lblDescricao);
cadastra.add(txtCod);
cadastra.add(txtDescricao);
cadastra.add(lblPrecoCusto);
cadastra.add(txtPrecoCusto);
cadastra.add(lblQtdMaxima);
cadastra.add(txtQtdMaxima);
cadastra.add(lblQtdMinima);
cadastra.add(txtQtdMinima);
janela.setVisible(true);
}
class Salvar implements ActionListener{
public void actionPerformed(ActionEvent e) {
boolean verifica = true;
if(txtCod.getText().equals("")||txtDescricao.getText().equals("")||txtPrecoCusto.getText().equals("")
||txtQtdMaxima.getText().equals("")||txtQtdMinima.getText().equals("")){
verifica = false;
}
try {
Integer.parseInt(txtCod.getText());
Float.parseFloat(txtPrecoCusto.getText());
Integer.parseInt(txtQtdMaxima.getText());
Integer.parseInt(txtQtdMinima.getText());
} catch (NumberFormatException en){
verifica = false;
}
if(verifica){
Listagem listagem = new Listagem();
ListagemDAO listagemDao = new ListagemDAO();
listagem.setCodListagem(Integer.parseInt(txtCod.getText()));
listagem.setDescricao(txtDescricao.getText());
listagem.setPorcentagem(Float.parseFloat(txtPrecoCusto.getText()));
listagem.setCodListagem(Integer.parseInt(txtQtdMaxima.getText()));
listagem.setCodListagem(Integer.parseInt(txtQtdMinima.getText()));
try {
listagemDao.salvar(listagem);
JOptionPane.showMessageDialog(null, "Produto salvo com sucesso");
txtCod.setText("");
txtDescricao.setText("");
txtPrecoCusto.setText("");
txtQtdMaxima.setText("");
txtQtdMinima.setText("");
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, "Erro ao salvar");
e1.printStackTrace();
}
}else{
JOptionPane.showMessageDialog(null, "Preencha os campos corretamente");
}
}
}
public static void main(String[] args) {
CadastraProduto cadastra = new CadastraProduto();
cadastra.criaTelaCadastro();
}
}
Sinto muito se não estiver nas normas do FOrum, se alguem puder me orientar, editarei.
Muito obrigado desde já.