jComboBox x Select

4 respostas
JuniorMcz

Boa Noite Galera.. estou com a seguinte duvida...
Tenho na minha CLASS MUNICIPIO um método que buscar na tabela as informações

public  void ConsultarUF(String uf) throws Exception {

        BancoDeDados bd = new BancoDeDados();
        bd.conectar();

        String sql = "select cidade.nom_cidade from cidade"
                   + " inner join estado on cidade.cod_estado = estado.cod_estado"
                   + " where estado.sgl_estado=?";
        
        PreparedStatement p = bd.getPreparedStatement(sql);
        
        p.setString(1, uf);

        ResultSet res = p.executeQuery();
        
        if (res.next() == true) {

            Municipios e = new Municipios();
           e.setNome(res.getString("nom_cidade"));
           }
        
        bd.desconectar();       
    }

Na minha CLASS MAIN
onde eu executo meu JComboBox
estou fazendo :

private void jComboBoxEstadoActionPerformed(java.awt.event.ActionEvent evt) { 

 if (jComboBoxEstado.getSelectedItem()=="Acre (AC)"){
           Estado = "AC";
           }else{
           if (jComboBoxEstado.getSelectedItem()=="Alagoas (AL)"){
               Estado = "AL";
               }else{
               if (jComboBoxEstado.getSelectedItem()=="Amapá (AP)"){
                   Estado = ("AP");
               }
           }
       }
     
       Municipios mun = new Municipios();
        try {
            mun.ConsultarUF(Estado);
        } catch (Exception ex) {
            Logger.getLogger(CadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
        }
        
       jComboBoxMunicipio.addItem(mun.getNome());
              }

Alguém pode me dar uma ajuda... como pegar os valores de um select e listar no jcombobox

4 Respostas

wagnerfrancisco

O teu método consultarUF (métodos devem começar com letra minúscula) pode retornar uma lista com os Municipios que buscou do select. Aparentemente você não tá fazendo nada ali, só percorrendo e descartando o objeto. Armazene tudo numa lista e retorne, e depois use estes objetos no seu combobox.

JuniorMcz

No metodo da consulta fiz .

public static ArrayList<Municipios> consultarUF(String uf) throws Exception {

        BancoDeDados bd = new BancoDeDados();
        bd.conectar();

        String sql = "select cidade.nom_cidade from cidade"
                   + " inner join estado on cidade.cod_estado = estado.cod_estado"
                   + " where estado.sgl_estado=?";
        
        PreparedStatement p = bd.getPreparedStatement(sql);
        
        p.setString(1, uf);

        ResultSet res = p.executeQuery();
        
        ArrayList<Municipios > lista = new ArrayList<Municipios >();  
        
        while (res.next()) {
            
            Municipios e = new Municipios();
            
            e.setNome(res.getString("nom_cidade"));
                        
            lista.add(e);
           }
      
        bd.desconectar(); 
        
        return lista;
       }

No Main

if (jComboBoxEstado.getSelectedItem()=="Acre (AC)"){
           Estado = "AC";
           }else{
           if (jComboBoxEstado.getSelectedItem()=="Alagoas (AL)"){
               Estado = "AL";
               }else{
               if (jComboBoxEstado.getSelectedItem()=="Amapá (AP)"){
                   Estado = ("AP");
               }
           }
       }
     
       Municipios mun = new Municipios();
        try {
            mun.consultarUF(Estado);
        } catch (Exception ex) {
            Logger.getLogger(CadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        
           
       
        ArrayList array = null;  
       
        try {
            array = new ArrayList(mun.consultarUF(Estado));
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
  
        String str = null;  
  
        for(int i = 0;i<array.size(); i++ ){  
  
            str = (String) array.get(i).toString();  
           jComboBoxMunicipio.addItem(str);  
        }  
        
          jComboBoxMunicipio.updateUI();

Agora esta listando :

syscliente.Municipios@4a7c5889
syscliente.Municipios@2998b093
syscliente.Municipios@6770983a
.
.
.

wagnerfrancisco

A maneira mais rápida de resolver isto é sobrescrever o método toString da classe Municipios pra exibir o que você quer mostrar:

@Override
public String toString() {
   return this.nome; //retornando o nome do municipio, retorne o que quiser exibir aqui
}

Você pode também criar um model específico para o combobox, mas é mais complicado inicialmente.

JuniorMcz

Valeu!!!

Criado 6 de agosto de 2012
Ultima resposta 7 de ago. de 2012
Respostas 4
Participantes 2