[resolvido] como passa uma objeto para uma JcomboBox

Ola pessoa estou com a seguinte dificuldade tenho a classe chamada “UF”
na qual tem dois atributo id e sigla.

@Entity
public Classe UF{

@Id
private int id;
private String sigla;

}

estou fazendo assim.

private void listaCidade() {
cmbCidade.addItem("");
List lista = new ArrayList();
DAOGenerico g = new DAOGenerico();
lista = g.consultaHQL(“Cidade”);

    for (Object o : lista) {
        Cidade m = new Cidade();
        m = (Cidade) o;
        cmbCidade.addItem(m.getDescricao()); 

}
gostaria de sabe o seguinte como faço para passa meu objeto para comboBox .quero que a combo box carrege com da descrição mais carrege tambem o id da uf.

tem algum metodo que faça mais ou menos assim cmbUF.adicioneaCombo(“GO”,1) cmbUF.adicioneaCombo(“sigla que vai mostra”,codigo)
e algum outro para me retorna esse codigo selecionado.
sei que no c# tem o selectItem e o metodo selectValue no java tem algum metodo parecido.

Object[] lista = new Object[4];
lista[0] = "pera";
lista[1] = "uva";
lista[2] = "maça";
lista[3] = "laranja";
JComboBox combo = new JComboBox();
combo.setModel(new DefaultComboBoxModel(lista));

não e bem isso fiz o teste com esse codigo , deu um problema porque o index so aceita na seguencia.
na verdade quero passa o item que sera mostrado e um object.
pois preciso que quando alguem seleciona o item preciso do codigo de item selecionado e não o index.

lista[0] = getCodigo + " - " + getDescricao(); // 1° Item do ComboBox

seria isso?

tente entender que o item do ComboBox é apenas um Object e não um Object[]…

o ComboBoxModel em si é formado por estes itens, ou seja, então será um Object[]

creio que o você está querendo fazer é inserir um Object[] dentro de um item

blz cara!!

você precisa fazer o seguinte

Primeiro:

Crie um método toString em sua classe “UF”, fazendo isso vc sobrescreve (faz um Override) o método toString padrão. Este método deve retornar uma String, e esta string deve ser o que vc quer que o usuário veja no combo. Ficaria mais ou menos assim

@Override public String toString() { return sigla; }

Segundo:

preencha o seu combo com objetos da sua classe UF. Ficaria mais ou menos assim:

[code]UF uf1 = new UF();

uf1.setId = 1;
uf1.setSigla = 2;

combo.add(uf1);[/code]

Terceiro:

para recuperar o id do item selecionado, basta recuperar o item selecionado(como vc faz normalmente), mas deve fazer uma conversão do item para o tipo UF, que é sua classe. Ficaria mais ou menos assim:

int idUf = ((UF)combo.getSelectedItem()).getId();

Testa ai, e se tiver alguma duvida avisa… :smiley:

Valeu pessoal pela ajuda , consegui o que queria era exatamente o que o softlesk passou, agradeço a todos pela ajuda.