Como carregar combobox com dados do banco de dados em Java?

Pessoal eu to tendo uma complicação… eu não estou conseguindo fazer para chamar os dados do banco de dados para a minha JComboBox

eu cadastrei alguns fornecedores, mas agora o que eu quero fazer, é que todos os fornecedores que eu cadastrar sejam inseridos no combobox, e toda vez que um fornecedor novo for cadastrado ele ser inserido no JComboBox… poderiam me ajudar? eu to perdido… eu n to conseguindo fazer

Faz o select no banco, assim vc terá ou um ArrayList, ou um List de dados(Isso vc ja deve saber como fazer, eu suponho). Assim vc implementa o seguinte código:

List<Fornecedor> lista = new FornecedorDAO.getList(); // só um exemplo nesta linha de GET
for (int i = 0; i < lista.size(); i++) { 
    jComboBox1.addItem(lista.get(i).getNomeFornecedor); // Já que a lista é orientado a objetos, consigo     usar o GET nome
}

O que importa é o jComboBox.addItem(???), isso permite adicionar um String, e/ou Object pelo q me lembre

mano eu não consegui fazer e gostaria de vc ver o código da minha tela java swing.

//:Dfuncionando com o banco0
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.Label;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.ImageFilter;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.text.MaskFormatter;
import javax.swing.text.PlainDocument;
import javax.swing.text.html.ImageView;

public class Tela_Cadastro_Prod extends JFrame implements ActionListener
{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
		//Vari�veis para os bot�es
		private JButton bt_salvar;
		private JButton bt_novo;
		private JButton bt_editar;
		private JButton bt_limpar;
		private JButton bt_cancelar;
		private JButton bt_pesquisar;
		private JButton bt_sair;
		private JButton bt_procurar;
	    private JFileChooser escolherImagem;
		

		//vari�veis simples
		private float cod, produto, quantidade, precodecompra, precodevenda, fornecedor, imagem;
		int resposta;  

		//vari�veis tela
		private JTextField  c_produto, c_quantidade, c_fornecedor, c_pesquisar, c_precounitario, c_precototal;
		private JLabel imageprod, l_produto, l_quantidade, l_precounitario, l_fornecedor, l_titulo;
		JTextField c_cod;
		JComboBox cmbFornecedorList = new JComboBox();
		
		InputMap bla = this.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);

		public Tela_Cadastro_Prod () throws ParseException
		{
			setTitle("Cadastro de Produtos");
			setBounds(180,40,990,520);
			setDefaultCloseOperation(DISPOSE_ON_CLOSE);
			setResizable(false);
			//getContentPane().setBackground(new Color(190,194,233));
			//getContentPane().setBackground(Color.RED);
			setLayout(null);
			setIcon();
			
			
			JLabel label=new JLabel("Cadastro de Produtos", SwingConstants.CENTER);
			label.setHorizontalTextPosition( SwingConstants.CENTER );
			label.setVerticalTextPosition( SwingConstants.BOTTOM );
			add(label);			
					
			
			//iniciar as vari�veis num�ricas
			cod = 0;
			produto = 0;
			quantidade = 0;
			precodecompra = 0;
			precodevenda = 0;
			//fornecedor = 0;
			imagem = 0;
			//nome = 0;
			
			
			//colocando a��o para os botoes (salvar)
				bt_salvar = new JButton();
				bt_salvar.setText("Salvar");
				bt_salvar.setBounds(340,420,100,30);
			//bt_calcula.setBackground(new Color(134,142,215));
			//bt_calcula.setForeground(Color.white);
			    this.add(bt_salvar);
			 
			// colocando a��o para os botoes (novo)
			//	bt_novo = new JButton();
			//	bt_novo.setText("Novo");
			//	bt_novo.setBounds(300,200,80,30);
			//	bt_novo.setBackground(new Color(134,142,215));
			//	bt_novo.setForeground(Color.white);
			//	//bt_calcula.setBackground(new Color(134,142,215));
			//	//bt_calcula.setForeground(Color.white);
			//	this.add(bt_novo);
				 
			//colocando a��o para os botoes (editar)
			//	bt_editar = new JButton();
			//	bt_editar.setText("Editar");
			//	bt_editar.setBounds(400,200,80,30);
			//	bt_editar.setBackground(new Color(134,142,215));
			//	bt_editar.setForeground(Color.white);
			//bt_calcula.setBackground(new Color(134,142,215));					
			//bt_calcula.setForeground(Color.white);
			//	this.add(bt_editar);
			
			//colocando a��o para os botoes (excluir)
				 bt_limpar = new JButton();
				 bt_limpar.setText("Limpar");
				 bt_limpar.setBounds(220,420,100,30);
			//bt_calcula.setBackground(new Color(134,142,215));
			//bt_calcula.setForeground(Color.white);
				 this.add(bt_limpar);
				
			//colocando a��o para os botoes (cancelar)
				// bt_cancelar = new JButton();
				// bt_cancelar.setText("Cancelar");
				// bt_cancelar.setBounds(405,275,90,30);
				// bt_cancelar.setBackground(new Color(134,142,215));
				// bt_cancelar.setForeground(Color.white);
			//bt_calcula.setBackground(new Color(134,142,215));
			//bt_calcula.setForeground(Color.white);
				// this.add(bt_cancelar);
				
			//colocando a��o para os botoes (pesquisar)
				//bt_pesquisar = new JButton();
				//bt_pesquisar.setText("Pesquisar");
				//bt_pesquisar.setBounds(25,340,130,30);
				//bt_pesquisar.setBackground(new Color(134,142,215));
				//bt_pesquisar.setForeground(Color.white);
			//bt_calcula.setBackground(new Color(134,142,215));
			//bt_calcula.setForeground(Color.white);
				//this.add(bt_pesquisar);
				
			//colocando a��o para os botoes
				bt_sair = new JButton();
				bt_sair.setText("Sair");
				bt_sair.setBounds(100,420,100,30);
				this.add(bt_sair);
				
				bt_procurar = new JButton();
				bt_procurar.setText("Procurar");
				bt_procurar.setBounds(25,320,100,30);
				this.add(bt_procurar);
				
				 
			// textfield						
			c_produto = new JTextField();
			c_produto.setBounds(125,120,250,20);
			this.add(c_produto);
			
			c_quantidade = new JTextField();
			c_quantidade.setBounds(125,200,90,20);
			this.add(c_quantidade);
			
			c_precounitario = new JTextField();
			c_precounitario.setBounds(125,160,100,20);
			this.add(c_precounitario);
		
			c_pesquisar = new JTextField();
			c_pesquisar.setBounds(140,320,250,30);
			this.add(c_pesquisar);
			
			/*c_fornecedor = new JTextField();
			c_fornecedor.setBounds(125,240,150,20);
			this.add(c_fornecedor);*/
			
			
			//label titulo
			Font fonte = new Font("Arial",Font.BOLD, 30);
			l_titulo = new JLabel ("Cadastro de Produtos");
			l_titulo.setFont(fonte);
			l_titulo.setBounds(350,-60,450,200);
			this.add (l_titulo);
			
			//label.setFont( new font( "Serif", Font.BOLD + Font.ITALIC + 20 )); 
			//Fonte titulo = new Fonte ("serif", Font.Bold | Font.Italic, 28);
			//JLabel titulo = new JLabel ("Cadastro de Produtos");
			//label.setFont();
			//l_nome.setFont(font);

			
			l_produto = new JLabel("Produto: ");
			l_produto.setBounds(25,120,200,20);
			this.add(l_produto);
			
			l_quantidade = new JLabel("Quantidade: ");
			l_quantidade.setBounds(25, 200, 200, 20);
			this.add(l_quantidade);
			
			l_precounitario = new JLabel("Preço Unitário: ");
			l_precounitario.setBounds(25, 160, 120, 20);
			this.add(l_precounitario);
			
			l_fornecedor = new JLabel("Fornecedor: ");
			l_fornecedor.setBounds(25, 240, 100, 20);
			this.add(l_fornecedor);
			//470, 140, 100, 20
			
			//pesquisando imagem			
			imageprod = new JLabel();
			imageprod.setBounds(620, 100, 260, 300);
			imageprod.setBorder(BorderFactory.createLineBorder(new Color(181, 181, 181),1));
			this.add(imageprod); 
			
			cmbFornecedorList.setSelectedItem(cmbFornecedorList);
			//pega o item selecionado da combobox, antes estava setSelectIndex. Precisa colocr entre parenteses o nome da combox
			//cmbFornecedorList.addActionListener(this);
			cmbFornecedorList.setBounds(125,240,150,20);
			add(cmbFornecedorList);
			add(l_fornecedor);
			
			
			bt_procurar.addActionListener(new ActionListener() {			
				public void actionPerformed(ActionEvent evt) {       
					
					escolherImagem = new JFileChooser();
			        
			        FileNameExtensionFilter filtro = 
			                new FileNameExtensionFilter("Tipos de Imagens", "jpg", "jpeg", "gif","png");
			        escolherImagem.setFileFilter(filtro);

			                
			        int resultado = escolherImagem.showOpenDialog(Tela_Cadastro_Prod.this);
			                
			        if (resultado == JFileChooser.APPROVE_OPTION) {
			            
			            // armazena o diretório da imagem.
			            String caminho = escolherImagem.getSelectedFile().getPath();
			            imageprod.setIcon(new ImageIcon(caminho));
			            c_pesquisar.setText(caminho);
			        }
					
					
					
			} 
			});
			
			
			//criando eventos
			
			//botao sair
			bt_sair.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evto){	
					if(evto.getSource() == bt_sair){
			
						resposta = JOptionPane.showOptionDialog(null,"Tem Certeza que Deseja Sair?","Deseja Sair",JOptionPane.YES_NO_OPTION, DISPOSE_ON_CLOSE, null, null, null);
						if (resposta == JOptionPane.YES_OPTION) {
							// verifica se o usu�rio clicou no bot�o YES
							dispose();
							} 
			
					}
				}
			});
			
			//botao limpar
			bt_limpar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evento){
					if(evento.getSource() == bt_limpar){
						c_quantidade.setText("");
						c_fornecedor.setText("");
						c_precounitario.setText("");
						c_pesquisar.setText("");
						c_produto.setText("");
					}
				}
			 });
			
			this.add(bt_limpar);
			
			//bot�o salvar
			bt_salvar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evto){	
					if(evto.getSource() == bt_salvar){
						
						String host = "127.0.0.1";
	                    String user = "root"; 
	                    String password = "";
	                    String db = "eletronicworld";
	                    //banco de dados
	                        //Conecto no banco
	                        try 
	                        {
	                                
	                                Class.forName("com.mysql.jdbc.Driver");
	                                Connection connection = DriverManager.getConnection("jdbc:mysql://" + host + ":3306/" + db + "?autoReconnect=true",user,password); 
	                                connection.setAutoCommit(false);
	                                
	                                //Crio a query
	                                //String sql = "select * from cad_func where id = ?"; 
	                                //String sql= "insert into cadastrocliente (nome,datanacimento,CPF,endere�o,estado,cidade,cep,bairro,email,senha) values(??????????)";
	                                //seleciona da tabela filmes onde o id_filme ser� digitado
	                                //String sql = "select * from filmes"; 
	                                
	                                String sql="insert into cadastroproduto (produto,quantidade,precounitario,precototal,fornecedor,imageprod,diretimg) values (?,?,?,?,?,?,?)";
	                                //insere dentro da tabela login nos campos nome,login,senha os valores que ser�o digitados
	                             
	                                //Crio o statement
	                                PreparedStatement stmt = connection.prepareStatement(sql);

	                                int rseletronicworld = stmt.executeUpdate(); 
	                                
	                                //Passo parametro
	                                
	                                stmt.setString(1, c_produto.getText() );
	                                stmt.setString(2, c_quantidade.getText() );
	                                stmt.setString(3, c_precounitario.getText() );
	                                stmt.setString(4, c_precototal.getText() );
	                                stmt.setString(5, c_fornecedor.getText() );
	                                stmt.setString(6, imageprod.getText() );
	                                stmt.setString(7, c_pesquisar.getText() );
	                                //1 � a primeira interroga��o, 2 o segundo,...
	                                //
	                                
	                                //Executo a query
	                                //item exclusivo para realizar o insert, para o select � outro. Ver o exemplo 
	          
	                                //rseletronic_world.next();
	                                //s� funciona para o select
	                                
	                                //Mostro os dados
	                                
	                                
	                                //System.out.println("Diretor: " + rsFilme.getString("diretor"));
	                                // quando � digitado no c_nome a query � mostrada no c_email, atraves do id que � digitado se busca o resultado no banco de dados
	                                // � mostrado o resultado quando o botao confirma � clicado, por que esta na a��o definida para o botao
	                                
	                               
	                                stmt.close();
	                                connection.commit();
	                                connection.close();
	                                // fecha tudo, a tabela e a conex�o 
	                                //verificando quais s�o os erros de conex�o
	                        } catch (ClassNotFoundException e) {
	                                System.out.println("Erro! Driver JDBC n�o encontrado!");
	                                e.printStackTrace();
	                        } catch (SQLException e) {
	                                System.out.println("Erro! Problemas realizando a conexao ou a consulta!");
	                                e.printStackTrace();
	                        } 
						
						JOptionPane.showMessageDialog(null,"Produto salvo com sucesso!");
					}
					//System.exit(0);
				}
			});
			
			//criando tabelas
			//String[] colunas = new String[] {"Produto","Fornecedor","Pre�o de compra (R$)","Pre�o de venda (R$)"};
			//String[][]dados = new String[][]
			//	{
			//		{"","","",""},
			//		{"","","",""},
			//		{"","","",""},
			//		{"","","",""},
			//		{"","","",""},
			//		{"","","",""},
			//		{"","","",""},
			//		{"","","",""},
					
	//	};
		//	JTable tabela = new JTable (dados, colunas);
		//	JScrollPane scroll = new JScrollPane();
		//	scroll.setViewportView (tabela);
		//	scroll.setBounds(30, 200, 850, 150);
		//	this.add(scroll);
		}
		{}
		
		
		
		public void setIcon() {
			// TODO Auto-generated method stub
		setIconImage(Toolkit.getDefaultToolkit().getImage("Imagens/logoicon.png"));
		}
		
	public static void main(String[] args) throws ParseException {
		Tela_Cadastro_Prod Calculadora = new Tela_Cadastro_Prod();
		Calculadora.setVisible(true);
		
		 try {
	            for (UIManager.LookAndFeelInfo info : 
	                    UIManager.getInstalledLookAndFeels()) {
	                if ("Windows".equals(info.getName())) {
	                    UIManager.setLookAndFeel(info.getClassName());
	                    break;
	                }
	            }
	        } catch (ClassNotFoundException ex) {
	            Logger.getLogger(Tela_Cadastro_Prod.class.getName()).log(Level.SEVERE,
	                    null, ex);
	        } catch (InstantiationException ex) {
	            Logger.getLogger(Tela_Cadastro_Prod.class.getName()).log(Level.SEVERE,
	                    null, ex);
	        } catch (IllegalAccessException ex) {
	            Logger.getLogger(Tela_Cadastro_Prod.class.getName()).log(Level.SEVERE,
	                    null, ex);
	        } catch (UnsupportedLookAndFeelException ex) {
	            Logger.getLogger(Tela_Cadastro_Prod.class.getName()).log(Level.SEVERE,
	                    null, ex);
	        }

	}
	public JTextField getC_produto() {
		return c_produto;
	}

	public void setC_produto(JTextField c_produto) {
		this.c_produto = c_produto;
	}

	public JTextField getC_quantidade() {
		return c_quantidade;
	}

	public void setC_quantidade(JTextField c_quantidade) {
		this.c_quantidade = c_quantidade;
	}

	public JTextField getC_fornecedor() {
		return c_fornecedor;
	}

	public void setC_fornecedor(JTextField c_fornecedor) {
		this.c_fornecedor = c_fornecedor;
	}

	public JTextField getC_pesquisar() {
		return c_pesquisar;
	}

	public void setC_pesquisar(JTextField c_pesquisar) {
		this.c_pesquisar = c_pesquisar;
	}

	public JTextField getC_cod() {
		return c_cod;
	}

	public void setC_cod(JTextField c_cod) {
		this.c_cod = c_cod;
	}

	public JTextField getC_precounitario() {
		return c_precounitario;
	}

	public void setC_precodecompra(JTextField c_precounitario) {
		this.c_precounitario = c_precounitario;
	}

	public JTextField getC_precototal() {
		return c_precototal;
	}

	public void setC_precototal(JTextField c_precototal) {
		this.c_precototal = c_precototal;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
	}

}

No JCombo Box Fornecedores, quero que ele carregue os dados do banco de dados e possa cadastrar também.

Exemplo:
// MEU COMBO : jcb_newcli_cidades
// CONEXAO COM BD: con

String sql = "SELECT CIDADE FROM CIDADES "; con.executeSQL(sql); jcb_newcli_cidades.removeAllItems(); try { con.resultset.first(); while (con.resultset.next()) //enquanto tiver dados jcb_newcli_cidades.addItem(con.resultset.getString("CIDADE")); } catch (SQLException erro) { JOptionPane.showMessageDialog(null,"Nenhuma informação localizada - Erro: \n"+erro); }

então brother não esta reconhecendo o resultset. tanto na conexão, quanto no while.

PS.: meu ResultSet se chama: rseletronicworld;

A linha:

cmbCidadeList.removeAllItems(); 

é mesmo necessária?

Veja o exemplo que montei para vc, quero que leia os comentários que coloquei no código, anotei cada detalhe para facilitar o entendimento.

ExemploComboBox.rar (24.7 KB)

Só para constar, eu desenvolvo orientado a objetos, caso vc também utilize esta forma, conseguirá entender com maior facilidade. Duvidas sobre o exemplo que mandei, ficarei a disposição para responde-las via skype se preferir.

Mano … Não deu certo… O que eu preciso é que seja. Carregado essa informação pelo banco de dados algo mais simples… Porém que funcione

Se vc tivesse lido os comentários q coloquei entenderia que os valores q o exemplo geram ao meu comboBox são fictícios e tem o objetivo de simular a entrada de dados a lista do comboBox, Se seu problema não é especificamente a população de dados e sim o Select do banco, olhe este link:

https://www.caelum.com.br/apostila-java-web/bancos-de-dados-e-jdbc/

Caso vc já tenha a matriz do seu select, reveja o código e tente entende-lo.