Problema com JComboBox

6 respostas
fiabani

Pessoal, sou iniciante em GUI’s, gostaria de fazer o seguinte: criar um JComboBox em que especifico um label (String que aparece como opção) e também um valor oculto para cada opção deste JComboBox (tipo um “value” em html), onde através do item selecionado eu possa resgatar uma id para usá-la numa consulta sql, por exemplo.

obrigado, vlw

6 Respostas

bruno_savi

eu ja fiz isso com um bean

vc cria um bean sobrescreve o toString…

e no comboBox vc faz o seguinte

cria uma lista de bean

ai vc passa a lista pro JcomboBox

jComboBox1 = new JComboBox( lista.toArray());

M

Otima solucao essa eheheh. Ai no caso vc adiciona o bean no combo, de forma que quando ele for imprimir o valor visual, vai sair o que o metodo toString() retornar, e quando vc recuperar o objeto, vc estará recuperando o bean. Otima ideia mesmo. :slight_smile:

T

Então para fazer dessa forma que você está querendo, primeiro você deve sobreescrever o método toString na classe que vai carregar o jComboBox, exemplo:

public class Pessoa{
String nome;
int cod;

public String toString(){
     return nome;
}
//GET AND SET
}

Depois você cria o model que carrega as informações para o combobox:

private DefaultComboBoxModel model = new DefaultComboBoxModel();
Daí é só dá carga no model:
private void loadPessoa() {
        try {
            List<Pessoa> lista = new ArrayLista<Pessoa>();
            lista.add(new Pessoa(1,"Maria");
            lista.add(new Pessoa(2,"Joao");
            lista.add(new Pessoa(1,"Jose");
            for (Pessoa item : lista) {
                model.addElement(item);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

Depois você seta a propriedade "model" do jComboBox para esse model que acabara de criar.

Daí quando quiser recurar o selecionado é só fazer o casting.

Pessoa p = (Pessoa) combo.getSelectedItem();
bruno_savi

eu qdo fiz eu fiz diferente eu criei uma lista de bean

adicionei todos os meus bean nela…

e no combobox eu fiz isso

jComboBox1 = new JComboBox( lista.toArray());

funciona tbm…

fiabani

bruno_savi:
eu qdo fiz eu fiz diferente eu criei uma lista de bean

adicionei todos os meus bean nela…

e no combobox eu fiz isso

jComboBox1 = new JComboBox( lista.toArray());

funciona tbm…

cara tem como postar ai teu código ou uma parte dele? obrigado vlw

bruno_savi

o bean vc ja sabe como fazer...

// me retorna uma lista de clientes
    	List<ClienteBean> lista = (List<ClienteBean>) new ClienteDAO().findByAll(ClienteBean.class);
    	

        jComboBoxNomeCliente = new javax.swing.JComboBox( lista.toArray());
Criado 17 de junho de 2008
Ultima resposta 17 de jun. de 2008
Respostas 6
Participantes 4