JcomboBox adcionando uma chave

Fala pessoal, tenho uma duvida, estou populando um combo box e tinha que adcionar um index(chave primaria) a cada elemento , que nao eh sequencial. ja tentei usar o metodo

insertItemAt(Object,int)
so que quando o argumento int nao eh mais sequencial ele estoura um erro.
ex:

no Banco de Dados esta assim :

cod_mun || str_desc

01 RJ
02 RS
07 RO
03 BA

gostaria de preecher a combo que ao clicar-se no RJ ele me retornasse o codigo 1 , no BA o codigo 3 etc…

alguem tem alguma ideia ?

Abracos

boa tarde.

pode ser feita da seguinte maneira.

realizar uma pesquisa no banco de dados e armazenar o resultado em uma lista;
populo o combo atraves dessa lista;

para pegar o codigo do item eu pego a posição que está selecionada no combo e pesquiso na minha lista.

espero ter ajudado.

Obrigado por ter respondido,

mas na propria combo nao tem como armazenar isto ne?!

e outra coisa essa lista seria do tipo de um VO(DTO) ?

Boa tarde colegas !

Você não pode inserir um objeto no combo que possua os atributos ID e Descrição ?

É só reescrever o método toString :

 public String toString() {
        return id + " - " + descricao;
        // ou
        //return descricao;
    }

Assim no seu combo vai aparecer:
01 - RJ
02 - RS
07 - RO
03 - BA

Se quiser que apareca só a descrição é mexer no toString…

E ao recuperar o objeto selecionado do combo vai conseguir fazer algo ± assim:


(Estado)cmbEstado.getSelectedItem().getId();

Supondo se tratar de um objeto estado…

Espero ter ajudado.

[]s

[quote=Zeed01]Boa tarde colegas !

Você não pode inserir um objeto no combo que possua os atributos ID e Descrição ?

É só reescrever o método toString :

 public String toString() {
        return id + " - " + descricao;
        // ou
        //return descricao;
    }

Assim no seu combo vai aparecer:
01 - RJ
02 - RS
07 - RO
03 - BA

Se quiser que apareca só a descrição é mexer no toString…

E ao recuperar o objeto selecionado do combo vai conseguir fazer algo ± assim:


(Estado)cmbEstado.getSelectedItem().getId();

Supondo se tratar de um objeto estado…

Espero ter ajudado.

[]s[/quote]

Acho que essa é a melhor maneira de fazer, facilita muito…