Adicionar objetos no JcomboBox

3 respostas
C

Pessoal eu tenho um array com objetos salvos nele,eu queria popular estes objetos salvos em um comboBox,mais não sei como,o método setModel só aceita objetos do tipo model,então como eu faço?
e tenho outra duvida,eu queria popular esses objetos quando abrir a tela.qual o evento que eu uso para isso?
já agradeço pelas ajuda.

3 Respostas

jcmird

Boa noite!
Nunca armazenei um objeto em combobox, pois nunca tive essa necessidade mas também trabalho mas com web e as vezes adiciono objeto em combox mas tem um converter pois ele armazena um tipo object mais isso para web.

no jcombox nao sei se tem essa funcionalidade, mas fica uma sujestão vc poderia criar um Map<key,valeu>, armazena a string no combobox e depois ir no map buscar esse objeto atraves da string.

Abraços

C

Ok,essa seria a melhor forma?eu precisava jogar valores de objetos de array em combobox ou em outro componente,queria jogar o nome desses objetos, e depois que selecionasse eles o mesmo vai gravar informações de um objeto nesse objeto selecionado.precisava para um trabalho da facul fazer ,mais no caso nem aprendi a usar map.teria outra forma mais simples,ou outro componente que eu posso jogar os valores?

devel.andrerocha

eu costumo mexer no index dele para salvar os ids que preciso, a combo precisa de dois valores um inteiro e outro string ...o mais facil é criar uma classe que estende a model dele, nao lembro exatamente mas é algo assim:

import javax.swing.DefaultComboBoxModel;


public class MeuComboModel extends DefaultComboBoxModel{
	public int index;
	public String texto;
	public MeuComboModel(int index, String texto){
		this.index = index;
		this.texto = texto;
	}
	
	@Override
	public String toString(){
		return texto;
	}
}

para popular e pegar o valor segue:

public class MeuComboModel extends DefaultComboBoxModel{
	public int index;
	public String texto;
	public MeuComboModel(int index, String texto){
		this.index = index;
		this.texto = texto;
	}
	
	@Override
	public String toString(){
		return texto;
	}
}

e para saber rodar um evento neste cara voce pode adicionar ou um actionperformed mesmo

jCombo.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				//faz aqui oque quiser
				//por exemplo pegar o id selecionado
				MeuComboModel meuCombo = (MeuComboModel) ((JComboBox)e.getSource()).getSelectedItem();
				int id = meuCombo.index;
				
			}
			
		});

Desculpa se tiver algum erro ...to fazendo de cabeça pq nao to no meu pc..mas qq coisa me add no msn ae...
[email removido]

Criado 2 de dezembro de 2008
Ultima resposta 3 de dez. de 2008
Respostas 3
Participantes 3