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?
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
silviogs
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!