Combobox e banco

9 respostas
liviaguedes

oii galera guj..bom to com um probleminha..

gostaria de saber como pegar os dados de uma consulta no banco e jogar num combobox..apenas um campo tipo eu tentei assim: o ConsultaAutor() vai no banco e faz a consulta e joga td num array mas nao funciona..
//ArrayList autor = objAutorDados.ConsultaAutor();
			
cbAutor= new JComboBox();
cbAutor.setEditable(false);
cbAutor.setFont(new Font(" ", Font.BOLD, 12));		

//for(int i=1; i<autor.size(); i++){
//	cbAutor.addItem(autor);
// }

gostaria de saber como eu mostro esse combo num formulario..

tipo pegando informaçoes de outras classe..tipo: trago de uma class de Autor, Editora, assunto e Categoria..trago apenas nos nomes..para mostra no form..

txtIsbn.setText(String.valueOf(objLivro.getISBN()));
txtTombo.setText(String.valueOf(objLivro.getCodigo()));
txtTitulo.setText(objLivro.getNome());
txtAno.setText(String.valueOf(objLivro.getAno()));
cbSigla.setSelectedItem(objLivro.getSigla());
txtEdicao.setText(String.valueOf(objLivro.getEdicao()));	
  //  cbAutor.setSelectedItem(objAutor.getNome());
 //   cbEditora.setSelectedItem(objEditora.getNome());
//    cbAssunto.setSelectedItem(objAssunto.getNome());
//    cbCategoria.setSelectedItem(objCategoria.getNome());
>

9 Respostas

Pedrosa

Como está esse método ConsultaAtor?, lembrando que por padrão métodos devem começar com letras minúsculas, pelo o que observei onde está comentado deveria funcionar se sua lista tivesse valores.

Faça o seguinte teste nessa linha:

ArrayList autor = objAutorDados.ConsultaAutor();
System.out.println(autor.size());
rissato

pra montar o combo faz isso:

for (Object o: lista) {

seuCombo.addItem(o);

}

se fizer isso, o setSelectedItem(seuObjecto) deve funcionar se vc fizer o sobreescrever o toString().

liviaguedes

opa…bom eu fiz…como vcs me falaram…ele ta imprimindo o numero certinho da consulta e ta colocando no combo so q ta colocando assim:

Como eu faço pra ele mostra apenas o nome…

bom mas ja me ajudo muito vlw…brigadao

andredeividi

Eu faço assim:

while (rs.next()){
   combo.addItem(rs.getString("nome"))
}

abraço

nandobgi

Se a sua classe Autor tiver getters e setters você pode fazer assim

for(int i=1; i<autor.size(); i++){
	cbAutor.addItem(autor.getNome());

Ou também você pode sobreescrever o método toString da classe Autor para que ela retorne o nome

Valeu

liviaguedes

bom galera…problema resolvido…vlw pela colaboração…
brigadao…qlq coisa eu grito ta…‘SOCORRROOO!!!’ rsrsrsrs :wink: :wink:

L

rissato:
pra montar o combo faz isso:

for (Object o: lista) {

seuCombo.addItem(o);

}

se fizer isso, o setSelectedItem(seuObjecto) deve funcionar se vc fizer o sobreescrever o toString().

Meu código está assim

for(Cliente c : dao.getClientes()){
           // jComboCliente.addItem(c.getNome());
        
            comboMobel.addElement(c);
        }

só que ele exibe o endereço da memória, porém se eu descomentar o código comentado ele exibe corretamente o nome do cliente, só que não funciona o código abaixo que seta os TextFields conforme o registro selecionado na combo

jComboCliente.addItemListener(new ItemListener(){
                public void itemStateChanged(ItemEvent evt){

                    if(!jComboCliente.getSelectedItem().equals(selecione)){

                    Cliente c = (Cliente) jComboCliente.getSelectedItem();
                    txtCPF.setText(c.getCpf_cnpj());
                    txtEndereco.setText(c.getEndereco());
                    txtTelefone.setText(c.getTelefone());
                    txtRg.setText(c.getRg_ie());
                    txtCelular.setText(c.getCelular());
                    txtNumero.setText(c.getNum_endereco());
                    
                    }else{

                        txtCPF.setText("");
                        txtEndereco.setText("");
                        txtTelefone.setText("");
                        txtRg.setText("");
                        txtCelular.setText("");
                        txtNumero.setText("");
                    }
                }
            });

Alguém tem alguma dica ??

robertoMoraes

subscreva o metodo toString() do seu cliente

por exemplo…

public String toString(){
      return nome;
}
L

Isso ae, deu certo aqui.

Obrigado.

Criado 10 de maio de 2007
Ultima resposta 6 de abr. de 2011
Respostas 9
Participantes 7