JComboBox não seleciona item  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
pango
Virtual Machine Man

Membro desde: 20/08/2005 16:31:37
Mensagens: 556
Localização: Pangolândia
Offline

Pessoal,

Alguém já passou por isto? Tenho uma JComboBox que é preenchida dinamicamente com objetos:



Entretanto, quando rodo o aplicativo e tento selecionar um item, a JComboBox permanece sem nenhuma seleção.

programmer.setFucked(user.isStupid());
Sun Certified Java Programmer 1.4
peerless
GUJ Master
[Avatar]

Membro desde: 22/01/2007 14:52:26
Mensagens: 1391
Localização: Porto Alegre / RS
Offline

mas a indexação do JCombobox, não começa apartir do ZERO ?

follow me
pitacos

"The most problems that teams face are about communication, and all the others are too." - Dan North





[MSN]
Rodrigo Manhães
JavaGuru
[Avatar]

Membro desde: 14/07/2005 17:07:07
Mensagens: 242
Localização: Campos dos Goytacazes/RJ
Offline

peerless wrote:mas a indexação do JCombobox, não começa apartir do ZERO ?


Provavelmente ele setou para -1 para que nenhum item seja selecionado.

pango wrote:Entretanto, quando rodo o aplicativo e tento selecionar um item, a JComboBox permanece sem nenhuma seleção.


Quanto à pergunta, você tem certeza que a lista de patrocinadores não está vazia?

https://github.com/rodrigomanhaes
http://programacaoradical.blogspot.com
pango
Virtual Machine Man

Membro desde: 20/08/2005 16:31:37
Mensagens: 556
Localização: Pangolândia
Offline

Rodrigo Manhães wrote
Provavelmente ele setou para -1 para que nenhum item seja selecionado.


Correto, Rodrigo.

Rodrigo Manhães wrote
Quanto à pergunta, você tem certeza que a lista de patrocinadores não está vazia?


Sim, a combo é preenchida e me exibe os patrocinadores. Ela só não seleciona nenhum...

programmer.setFucked(user.isStupid());
Sun Certified Java Programmer 1.4
Rodrigo Manhães
JavaGuru
[Avatar]

Membro desde: 14/07/2005 17:07:07
Mensagens: 242
Localização: Campos dos Goytacazes/RJ
Offline

pango wrote:Rodrigo Manhães wrote
Quanto à pergunta, você tem certeza que a lista de patrocinadores não está vazia?


Sim, a combo é preenchida e me exibe os patrocinadores. Ela só não seleciona nenhum...

Então a parada é mais estranha do que eu imaginava. Manda seu código aí.

https://github.com/rodrigomanhaes
http://programacaoradical.blogspot.com
pango
Virtual Machine Man

Membro desde: 20/08/2005 16:31:37
Mensagens: 556
Localização: Pangolândia
Offline

Lá vai:


programmer.setFucked(user.isStupid());
Sun Certified Java Programmer 1.4
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Peraih, vc abre a lista do combo, clica sobre um dos itens e ele não aparece como selecionado, é isso?

Vc tem alguma programação nos listener deste combo? Se for o que eu falei, a impresão que dá é que em algum listener vc tá voltando a posição do combo pra -1!


[]'s

[]'s, Renata
[Email]
pango
Virtual Machine Man

Membro desde: 20/08/2005 16:31:37
Mensagens: 556
Localização: Pangolândia
Offline

Renata,

É exatamente isto que você descreveu: eu clico em um dos itens, mas a combo não o seleciona. Com relação aos listeners, não há nenhum relacionado com a minha combo...

programmer.setFucked(user.isStupid());
Sun Certified Java Programmer 1.4
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Onde vc está chamando o método fillComboBox() ?

[]'s, Renata
[Email]
pango
Virtual Machine Man

Membro desde: 20/08/2005 16:31:37
Mensagens: 556
Localização: Pangolândia
Offline

Durante a inicialização do JInternalFrame onde ela está.

programmer.setFucked(user.isStupid());
Sun Certified Java Programmer 1.4
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Pior é que aparentemente está tudo certo!

Bem, vamos fazer uns testes,,, pra começar, lá no seu método fillComboBox(), mude a linha abaixo:



Coloque ele pra "settar" qq. outra posição: 0 ou 1 ou 2... sei lá! Só pra vc poder testar se depois de feito isso, o combo sempre ficará nesta posição... se isso acontecer, indica que esta linha que está "forçando" seu combo a sempre ficar sem seleção.

Eu uso muito da forma como vc está tentando fazer, ou seja, preencher o combo em tempo de execução,,, costumo fazer assim:



No método carregaComboRelatorios() eu faço um pouco diferente de vc, eu não adiciono diretamente ao combo os itens, eu carrego um String[] e depois "setto" o model do meu combo,,, resumindo, o método é algo mais ou menos assim:



Desta forma sei que funciona pq uso sempre. Tente mudar o seu para a forma como fiz, ou seja, carregando o conteúdo todo num String[] e depois "settando" o model do seu combo.

Boa sorte!

[]'s, Renata
[Email]
PauloBrito
JavaChild
[Avatar]

Membro desde: 26/07/2007 13:12:45
Mensagens: 109
Offline

Sei que esta thread é bem antiga, mas o google me trouxe até aqui e, como eu acabei descobrindo uma possível resposta, gostaria de compartilhá-lha com possíveis desaventurados (agora não mais, talvez...) que encontrem este tópico.

Fuçando no código fonte onde se encontra o JComboBox, ví que o método setSelectedItem só faz alguma coisa se o objeto a ser selecionado foi diferente do objeto atualmente selecionado. E faz isso utilizando do método equals. Portanto, se o seu objeto não tiver um equals, pode acontecer de todos eles serem considerados iguais e, portanto, nenhuma nova seleção será feita.

Aqui está o trecho de código em questão (arquivo JComboBox.java, linha 532):



Abraços à todos.
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team