Olá a todos!
Estou com o seguinte problema: tenho um frame e dentro deste frame tem um jpanel este primeiro jpanel funcionar como um container para outros que serão exibidos em tempo de execução, só que quando eu tento exibir o novo jpanel ele não exibe, ele só exibe quando eu minimizo e maximizo a tela. eu sei que o código está certo porque depois deste processo de minimizar e maximizar o jpanel é exibido.
Alguém sabe como faço para forçar esta atualização?
Desde já agradeço.
CaioO
Março 6, 2010, 9:03am
#2
Bom dia amigo, você está usando como? Dá para postar pelo menos a parte do código para ajudarmos?
Após inserir os componentes em tempo de execução, use o método revalidate() do jpanel:
seuPanel.revalidate();
CaioO
Março 6, 2010, 9:15am
#4
Humm amigo, tentou dar um repaint() ? Acho que para o seu caso é adicionar os componentes no panel setar como visible e dar um repaint. Tenta aí…
Obrigado por responder pessoal, vou tentar aqui.
De novo obrigado a todos, mas o que funcionou no meu caso foi o seuPanel.revalidate();
Vocês me ajudaram muito!!!!!!!!!!!!!!
É sempre bom ler a documentação quando algo não funciona. Você usou o método remove e add, para trocar os paineis, certo?
Veja o que diz a documentação do método add:
]Note: If a component has been added to a container that has been displayed, validate must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling validate only once, after all the components have been added.
Tradução:
javadoc do método add (tradução livre):
“Nota: Se um componente foi adicionado ao container que já foi exibido, validate() deve ser chamado naquele container para exibir o novo componente. Se multiplos componentes estão sendo adicionados, você poderá aumentar a eficiência chamando validate apenas uma vez, depois de todos os componentes terem sido adicionados.”
Valeu pela dica, vou lembrar disso da próxima vez
um abraço