JComboBox - Seta está sumindo quando atualizo um JDialog. Como corrigir?

13 respostas
geidivan

Caros amigos,

Tenho um JDialog no qual insiro JComboBox dinamicamente. Quando abro ele pela primeira vez eles são carregados normalmente, mas quando executo um removeall() para remover todos os componentes de um JPainel e insiro os JComboBox novamente, eles aparecem sem aquela seta na direita. Então, preciso dar um dispose() no JDialog e abrí-lo de novo para as setas aparecerem.

O que é isso, é algum tipo de bug no Swing package?

13 Respostas

R

Para excluir todos os itens de uma JComboBox é preciso usar removeAllItems(). O método removeAll() na verdade pertence à classe Container, e não deve ser usado no contexto do componente JComboBox.

geidivan

Não é isso. Eu não quero remover os itens do Combo. Eu uso o removeAll() para remover todos os combos (Components) que estão em um JPainel. Depois eu os insiro de novo, aí que somem as setas, ao fazer um add() no JPainel.

S

Olá amigo

coloca o código para que possamos analisá-lo.

Silvio Guedes

thiagocg

Olá geidivan, programo com swing bastante tempo, uns 5 anos mais ou menos, e nunca tinha visto algo do tipo.
Infelizmente estou passando pelo mesmo problema que vc relatou no post (“a seta não aparece no combo”) e gostaria de saber se vc encontrou alguma solução para o problema.

O meu caso é um pouco diferente, eu não removo e adiciono novos combos e sim removo um panel (JPanel) inteiro e adiciono outro dinamicamente e nestes panel dinamicos eu sempre tenho algum combo.

Qualquer ajuda é bem vinda!

Grato a todos!

Rummenigge

Tentem dar um repaint() na janela que contém esses objetos toda vez que vocês forem inserir algo dentro.

thiagocg

Olá Rummenigge, bom dia e obrigado pela resposta.
Infelizmente ja uso o repaint e mesmo assim não surtiu efeito.

[]'s

Rummenigge

Mesmo após a inserção dos componentes?

thiagocg

Isto, os componentes aparecem mas apenas o jcombobox ficam sem as setas, mas os valores são setados corretamente e todos os componentes funcionam certinho, o único detalhe é essa questão da seta do combo.

[]'s

Rummenigge

Faz poucos meses que eu tenho experiência no Swing e essa é a primeira vez que vejo isso. hehehe
vlw.

thiagocg

Cara, tem uns cinco anos que eu já trabalho com swing e nunca tinha visto.
Mas ainda bem que (por enquanto) não foi um problema.rsrsr

Valeu pela ajuda.

[]'s

thiagocg

Pessoal consegui resolver o problema, basta mandar revalidar seu jpanel (ou outro container que vc estiver utilizando).

Ex:seuJPanel.revalidate();
Ai todos os componentes inclusive o jcombobox que não estava mostrando a seta foi exibido corretamente.

Espero que a dica ajude alguem um dia!

[]'s

lina

Oi,

Minha primeira dica seria o revalidade(). Mais você mesmo já descobriu…

A outra maneira de se trabalhar seria utilizando apenas o setVisible(false).

Tchauzin!

janjan

Não sei se conseguiram resolver, mas tão tentando ver o código do cara, mas é simplesmente fazer oque o roger_rf falou
Abraços!

Criado 11 de maio de 2009
Ultima resposta 19 de jul. de 2011
Respostas 13
Participantes 7