Resultado do select no JComboBox{problema resolvido}

6 respostas
thiagopassosp

Boa Tarde Galera

Estou com 2 classe uma CadastroCliente e outra Cadastro

Na cadastro eu quero listar todos os nomes dos clientes da classe CadastroCliente.

Estou fazendo o seguinte
na Classe Cadastro

Eu fiz um método para pegar os nomes, fazendo um select assim
public void nomeCliente()
  	{
  		try{
  			Cadastro_Cliente nome = new  Cadastro_Cliente();//chamando metodos da outra classe  	  			
  			if(!nome.tfNome.getText().equals("")){
  				String SQL="Select nome From Cadastro_Cliente";
  				while(rs.next()){
  				rs=MeuState.executeQuery(SQL));
  				}  				
  			}
  			
  		}catch(Exception e)
  		{}
  	}
agora na hora de jogar no JComboBox não consigo ,
jComboBoxCliente.setModel(new DefaultComboBoxModel(new String[] { null, "Item 1", "Item 2", "Item 3", "Item 4" }));
alguem ai tem uma sugestão??

6 Respostas

dwduncan

thiago, bem, para ser sincero não entendi seu código direito principalmente esta parte: String SQL="Select nome From Cadastro_Cliente"; while(rs.next()){ rs=MeuState.executeQuery(SQL)); }
Mesmo assim eu faria o seguinte se quisesse inserir algo em um combo.

jComboBoxCliente.addItem(rs.getString("nome_do_ccampo"));
thiagopassosp

agora ficou assim e nada

public void nomeCliente() { try{ Cadastro_Cliente nome = new Cadastro_Cliente();//chamando metodos da outra classe if(!nome.tfNome.getText().equals("")){ String SQL="Select Nome From Cadastro_Cliente"; //enquanto tiver algo na coluna add no comboBox while(rs.next()){ jComboBoxCliente.addItem(rs.getString("Nome")); rs=MeuState.executeQuery(SQL); } } }catch(Exception e) {} }

aI EU TO CHAMANDO ESSE METODO NO CONSTRUTOR DA CLASSE CADASTRO
ALGUÉM AI SABE O PQ ELE NÃO PREENCHE O JCOMBOBOX??

dwduncan

Talvez seja porque vc NÃO FEZ A CONEXÃO COM O BANCO DE DADOS !!!

public void nomeCliente(){
   try{
           Cadastro_Cliente nome = new  Cadastro_Cliente();//chamando metodos da outra classe  	  			
if(!nome.tfNome.getText().equals("")){

        String SQL="Select Nome From Cadastro_Cliente";
        Connection conn = seuMetodoParaObterConexao();
        Statement selc=conn.createStatement();
        selc.executeQuery(SQL);
        rs = selc.getResultSet();   
 //enquanto tiver algo na coluna add no comboBox
   	while(rs.next()){   					     jComboBoxCliente.addItem(rs.getString("Nome"));
   	}  				
   			}  			
   	}catch(Exception e){	e.printStackTrace();}

Outra coisa, procure tratar suas exceções, fica mais fácil entender o problema.

thiagopassosp

dwduncan
A conexão ja esta pronta , criei no construtor da clase…

o estranho que ele ta ficando em branco e não da erro.

dwduncan

Teste a conexão dentro do método, só para ter certeza que ele funciona.
Muitas coisas podem ter ocorrido no meio do caminho, como por exemplo algum outro método fechar a conexão (conn.close()). Se vc puder postar as classes relacionadas será mais fácil de ver o que tá pegando !

thiagopassosp

dwduncan
Agora q reparei q estou viajando eu não preciso passar pela outra classe para pegar o nome apenas eu posso pegar pelo banco.

Ai esta a solução

public void nomeCliente()
  	{
  		try{
  			String url = "jdbc:mysql://localhost/cadastro_analista";
        	String username= "root";
        	String password= "";
        	
        	Class.forName("com.mysql.jdbc.Driver");
        	Connection MinhaConexao = DriverManager.getConnection(url, username, password);
        	MeuState = MinhaConexao.createStatement();
        	
  			String SQL="Select * From cadastro_cliente";  				
  				     rs=MeuState.executeQuery(SQL); 
  				     while(rs.next()){
  				     	 jComboBoxCliente.addItem(rs.getString("Nome"));  
  				     } 			 	 			  			
  		}catch(Exception e){
  			JOptionPane.showMessageDialog(null,e.getMessage()+ "  Erro");
  			e.printStackTrace();
  				}
  	}

Muito Obrigado ..

Criado 17 de junho de 2007
Ultima resposta 17 de jun. de 2007
Respostas 6
Participantes 2