não consigo povoar combobox de jeito nenhum

3 respostas
R

Boa tarde gurizada mais uma vez recorro a vocês com um duvida besta mas que não consigo resolver, como todo iniciante travei aqui e não saio, vou postar o meu codigo:

Classe ClienteControl (onde tem os comandos sql)
package br.com.financeira.cliente;

import br.com.financeira.acesobd.AcessoPostgres;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author rafael
 */
public class ClienteControl {
    PreparedStatement pstm;
    ResultSet rs;
    
    String cadastraCliente = "INSERT INTO CLIENTE (NOME, CPF, RG, ORGAO_RG, NASCIMENTO, DATA_CADASTRO, PROFISSAO, FONE, RENDA, CEL, FONE_REFERENCIA, EMAIL, CEP, "
            + "RUA, NUM_RESID, CIDADE, BAIRRO, UF, COMPLEMENTO, NUM_BENEFICIO, DATA_EMPRESTIMO, OBS, TIPO_BENEFICIO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    String consultaCliente = "SELECT * FROM CLIENTE WHERE NOME LIKE ?";
    String consultaCpf = "SELECT * FROM CLIENTE WHERE CPF LIKE ?";
    String alterarCliente = "UPDATE CLIENTE SET NOME = ?, CPF = ?, RG = ?, ORGAO_RG = ?, NASCIMENTO = ?, DATA_CADASTRO = ?, PROFISSAO = ?, FONE = ?, RENDA = ?, CEL = ?"
            + ", FONE_REFERENCIA = ?, EMAIL = ?, CEP = ?,RUA = ?, NUM_RESID = ?, CIDADE = ?, BAIRRO = ?, UF = ?, COMPLEMENTO = ?, NUM_BENEFICIO = ?, "
            + "DATA_EMPRESTIMO = ?, OBS = ?, TIPO_BENEFICIO = ? WHERE CODIGO = ?";
    String consultaNome = "SELECT NOME FROM CLIENTE";
    AcessoPostgres bd = new AcessoPostgres();
    public ClienteControl() {
    }

public List<ClienteBean> listarNomeCliente(String nome){
        List<ClienteBean> cliente = new ArrayList();
        try{
            pstm = bd.conectar().prepareStatement(consultaNome);
            pstm.setString(1, nome);
            rs = pstm.executeQuery();
            ClienteBean cli;
            while (rs.next()){
                cli = new ClienteBean();
                cli.setNome(rs.getString("nome"));
                cliente.add(cli);
            }
            bd.desconectar();
        } catch(Exception e){
            e.printStackTrace();
        }
        return cliente;
    }

E tenho a classe Clientes (onde tenho o combobox)

package br.com.financeira.view;

import br.com.financeira.cliente.ClienteBean;
import br.com.financeira.cliente.ClienteControl;
import br.com.financeira.correios.CorreiosBean;
import br.com.financeira.correios.CorreiosControl;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
import javax.swing.JFrame;
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;


public class Clientes extends javax.swing.JFrame {
     
//DefaultTableModel tmClientes = new DefaultTableModel(null, new String[]{"Código", "Nome", "Cpf", "Data Nascimento", "Telefone"});
    
    
  

DefaultTableModel tmClientes = new DefaultTableModel(new Object[] {

 "Código", "Nome", "Cpf", "Data Nascimento", "Telefone" }, 0) {

 public boolean isCellEditable(int rowIndex, int mColIndex){  

 return false;  

 }

 };

    
    
    ListSelectionModel lsmClientes;
    List<ClienteBean> clientes;
    String tipoCadastro;
    CepIncert cep;
    Principal principal;
  //  Clientes cliente;
  //  Correios correios;
    /** Creates new form Clientes */
    
    
    
    
    
    public Clientes() {
        initComponents();
    }
   
//aqui quero povoar o jcombobox (cbClientes) com os nomes do resultado da consulta

sei que tem varios topicos relacionados mas não consegui sanar minha duvida, obrigado.

3 Respostas

yhhik
cara seu codigo ta meio confuso mas seria algo assim:
List<Cliente> listaCliente = new ArrayList<Cliente>();
listaCliente = suaDAOClinete.SeuMetodoRetornaCliente();
for(Cliente cliente:listaCliente){
    
   cbCliente.addItem(cliente);
  
}
JMARQ

Cara, após vários dias pesquisando aqui no fórum consegui povoar meu JComboBox, assim:

Na classe de persistência (DAO) criei o seguinte método:

public void listaComboBox(JComboBox combo) throws SQLException {

        String sql = "SELECT nome FROM nomeDaTabela ORDER BY nome";

        PreparedStatement stmt = (PreparedStatement) this.conexao.prepareStatement(sql);
        
        ResultSet rs = stmt.executeQuery();
        
        while (rs.next()) {

            combo.addItem(rs.getString("nome"));
        }

        rs.close();
        stmt.close();
    }

Em seguinte na view criei outro método para utilizar o método listaComboBox(JComboBox combo) da classe DAO para povoar o JComboBox da minha aplicação, assim:

public void carregaCombo(){
     daoCliente dao = new daoCliente();
     dao.listaComboBox(jCombo);//jCombo é o nome do JComboBox da minha aplicação
}

Então, apenas coloquei esse método para iniciar dentro do construtor. Pronto! Resolvido!

R

Cara sem palavras para vocês dois, porém como o codigo do JMARQ tava mais parecido com o meu utilizei ele, ficou perfeito, muito obrigado gurizada, vlw.

Criado 5 de novembro de 2011
Ultima resposta 5 de nov. de 2011
Respostas 3
Participantes 3