Carregar dados

3 respostas
J

Ola a todos,

To carregando um JComboBox seguindo esse topico:

http://www.guj.com.br/posts/list/19088.java

Como faço para na hora que eu recuperar os dados de um cadastro apos uma consulta que saia no combo a opcao refente ao cadastro selecionado?

Pois ta sempre saindo a primeira opcao do combo selecionada… como resolvo esse problema?

Grato,

Julio.

3 Respostas

Luiz_Gustavo

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(int index = 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

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:

public String toString(){

   return getSigla();
}

e ao povoar o JComboBox, o texto que aparece é o das siglas.

espero que isso possa te ajudar!

[]'s

Criado 6 de junho de 2006
Ultima resposta 6 de jun. de 2006
Respostas 3
Participantes 2