Duvida no JComboBox

12 respostas
leandro-maanaim

Pessoal tenho 7 nomes de pessoas adicionados no meu JComboBox.Como faço para pegar meu o terceiro nome e ele me retornar um valor inteiro?Ex Valor inteiro = 3…
Na Verdade eu quero pegar um valor de posição do combox ao selecionar um objeto.

12 Respostas

Eric_Yuzo

O método getSelectedIndex() retorna o índice que está selecionado no combo box.

int posicao = comboBox.getSelectedIndex();

PS.: Os índices começam em zero.

leandro-maanaim

só me retorna o 0…pq?

Eric_Yuzo

Imagino que o método esteja sendo chamado enquanto o primeiro item (posição 0) está selecionado.

Como está fazendo pra chamar este método?

leandro-maanaim

Ixi Lascooo… Quando tenho um objeto nome na posição 0 e outro objeto na posição 7 por ex… o objeto da minha posiçao 7 retorna 0 tb…Como resoover isso?

Eric_Yuzo

Onde está sendo chamado o método getSelectedIndex? Está usando algum evento?

Poste o trecho do código onde chama este método.

leandro-maanaim

apenas no click (Como teste Simples) ao clicar e selecionar um objeto desejado só isso.

Daniel_Girotto

Bom acredito que não esteja utilizando um método para ouvir os eventos do JComboBox

final JComboBox seuJComboBox = new JComboBox(pessoas);

seuJComboBox.addActionListener(
    new ActionListener(){
       public void actionPerformed(ActionEvent evento){
           System.out.println(seuJComboBox.getSelectedIndex());
       }
    }
);

Caso queira algo menos mastigado, pode dar uma olhada na documentação
http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JComboBox.html

leandro-maanaim

O problema é que quando tenho dois nomes iguais ele sempre me retorna 0. Entedeu?

Eric_Yuzo

O JComboBox é assim mesmo. Se tiver itens repetidos, ele retorna o que estiver na posição mais baixa.

O que pode ser feito é adicionar as pessoas ao combo box. Somente a sua classe que representa a pessoa sabe diferenciar pessoas de mesmo nome.

Para que apareça apenas o nome na combo, é preciso implementar o método toString para retornar o nome da pessoa.

Daniel_Girotto

isso é um bug do Java desde 1998.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4133743

tks Eric Yuzo

leandro-maanaim

Pessoal então como resolver meu problema?
eu tento passar um objeto pra ele mais ele nao funciona. comboBox = new JComboBox(Pessoa);

ViniGodoy

Você deve passar objetos do tipo Pessoa e não a classe Pessoa.

Você não cria sua ComboBox assim:

comboBox = new JComboBox(String);
Criado 18 de fevereiro de 2011
Ultima resposta 23 de fev. de 2011
Respostas 12
Participantes 4