A cada vez que você fizer uma atualização na GUI, com os dados do cadastro, percorra os itens do combo em um laço, comparando cada um ao item correspondente do cadastro.
Assim que encontrar o item correspondente no combo, faça com que aquele índice seja o índice selecionado e então saia do laço.
Ex:
for(intindex=0; index < cmbUf.getItemCount(); index++){if(((Uf)cmbUf.getItemAt(index)).getId()==endereco.getUf().getId()){
cmbUf.setSelectedIndex(index);break;}
}
neste caso, ao atualizar o endereço preciso encontrar a Unidade Federativa correspondente. Então percorro o combo das Unidades Federativas, comparando cada item com a Unidade Federativa do meu endereço.
espero que ajude!
[]'s :thumbup:
J
jfranco
Obrigado por responder…
Fiquei com algumas duvidas…
(Uf) é minha classe que tem o getId, setId?
o q é esse endereco.getUf().getId()) ?
Grato,
Julio.
Luiz_Gustavo
Isso!
É o seguinte: Eu tenho uma classe Uf, com alguns atributos (id, sigla, nome).
O combo de Unidades Federativas é preenchido com esses objetos.
Tenho também objetos da classe Endereco, que possuem uma referência a Uf.
Quando pego um objeto do combo, com o método getItemAt(index), me é retornado um Object, por isso eu tenho que fazer um cast bcmbUf.getItemAt(index)[/b].
Depois que faço o cast, chamo o método getId() do objeto Uf que peguei do combo, para saber o código dele, e comparo com o código do objeto Uf que está em meu objeto endereco endereco.getUf().getId():
((Uf)cmbUf.getItemAt(index)).getId() - me dá o id do objeto Uf no combo
endereco.getUf().getId() - me dá o id do objeto Uf referenciado pelo objeto endereco.
Só mais uma dica sobre esta forma de povoar o comboBox. Para os objetos que serão usados para povoar um JComboBox eu costumo sobrescrever o método toString(). Se você não fizer isto, o que aparece no JComboBox é uma string que representa o objeto.
Então, na versão de toString() para esse objeto Uf, por exemplo, eu fiz algo como isso:
publicStringtoString(){
returngetSigla();
}
e ao povoar o JComboBox, o texto que aparece é o das siglas.