Setar itens em um JComboBox

5 respostas
nakrak

Pessoal como eu faço para setar os itens de um jcombobox de forma dinamica, tipo uma string ou algo assim

É que eu precisava setar os itens de um jcombobox me utilizando de valores (Strings) que seriam os nomes das tuplas na tabela

Não estou tendo sucesso em achar algo que entenda sobre ele

5 Respostas

marciosantri

Seria isso?

JComboBox c = new JComboBox();

...

c.removeAllItems();
c.addItem("Item A");
c.addItem("Item B");
c.addItem("Item C");

Inté

nakrak

Era isso mesmo que eu precisava

valew

agora veja esse codigo

ele recebe uma string contendo os campos id e aluno de uma tabela do banco entao divide elas em strings que eu possa colocar como item do JCombobox

String aux="";
        curso.removeAllItems();
        String cursos = controle.Controle.BuscaCurso();
            int contador = cursos.length();
            int p=0;
            int posicao=0;
            String a="";
            for(int i=contador-5; i<contador; i++){
                a+=cursos.substring(i,i+1);
            }
            System.out.println(a);
            
            for(int i = 0; i<contador;i++){

                if (cursos.substring(i,i+1).equals("@")){
                    posicao = i;
                    for(int j=p; j<posicao-1; j++){
                        aux+=cursos.substring(j,j+1);
                        
                    }
                    curso.addItem(aux);
                    p=posicao+1;
                    aux="";
                }
                
            }

Esse código é da classe que faz a consulta no banco e constroi uma string para enviar de volta

public static String BuscaCurso() throws SQLException {
         String aux="";

        DriverManager.registerDriver(new org.firebirdsql.jdbc.FBDriver());
        cnx = DriverManager.getConnection("jdbc:firebirdsql://localhost/c:/controlemensalidade/controlemensalidade.fdb", "SYSDBA", "masterkey");
        cnx.setAutoCommit(true);
        cmd = cnx.createStatement();
        rs = cmd.executeQuery("select * from CURSO;");
        int cont=0;
        if(rs.next()){
                 aux+="ID: "+rs.getString("ID")+" NOME: "+rs.getString("NOME")+" @";
                 cont++;
        }
        aux+="    "+cont+"";
        rs.close();
        cmd.close();
        cnx.close();

        return aux;
    }

e tem essa classe que faz mais ou menos o mesmo so que ela pesquisa em uma tablea a ocorrencia de uma string
O problema dela é que nao consigo por o resultado (String no JOptionPane pro usuario escolher um id

public String EscolheAluno(String nome) throws SQLException {


        DriverManager.registerDriver(new org.firebirdsql.jdbc.FBDriver());
        cnx = DriverManager.getConnection("jdbc:firebirdsql://localhost/c:/controlemensalidade/controlemensalidade.fdb", "SYSDBA", "masterkey");
        cnx.setAutoCommit(true);
        cmd = cnx.createStatement();
        rs = cmd.executeQuery("select ID, NOME from ALUNO where NOME LIKE ' % "+nome+" %'");
        String aux="";
        if(rs.next()){

                aux+="ID:  "+rs.getString("ID")+"  Nome:  "+rs.getString("NOME")+"";

        }
        rs.close();
        cmd.close();
        cnx.close();
        JOptionPane.showMessageDialog(null, ""+aux+"");

        return aux;
    }

A classe que faz a consulta retorna apenas 1 ocorrencia sendo que no banco ha 5 ocorrencias

Existe algum erro de lógica?

ViniGodoy

O ideal é trabalhar com objetos, e construir seu próprio ComboBoxModel.

nakrak

A criacao de itens no combobox funciona normal
o problema é com o retorno da pesquisa no banco que so traz 1 resultado

nakrak

Deu tudo certo agora
O problema era o if em vez do while :shock:

kakakkaa :lol: :lol: :lol: :lol:

public static String BuscaCurso() throws SQLException {
         String aux="";

        DriverManager.registerDriver(new org.firebirdsql.jdbc.FBDriver());
        cnx = DriverManager.getConnection("jdbc:firebirdsql://localhost/c:/controlemensalidade/controlemensalidade.fdb", "SYSDBA", "masterkey");
        cnx.setAutoCommit(true);
        cmd = cnx.createStatement();
        rs = cmd.executeQuery("select id, nome from CURSO;");
        int cont=0;
        while(rs.next()){
                String a=rs.getString("ID");
                String b =rs.getString("NOME");
                 aux+="ID: "+a+" NOME: "+b+" @";
                 
                 
        }
        aux+="    "+cont+"";
        rs.close();
        cmd.close();
        cnx.close();

        return aux;
    }

valew pessoal :stuck_out_tongue:

Criado 2 de novembro de 2009
Ultima resposta 2 de nov. de 2009
Respostas 5
Participantes 3