Método pack() sem piscar

3 respostas
T

Alguém aí sabe como faço pra utilizar o método pack() sem fazer a tela piscar?
Exemplo. Se eu crio uma tela, adiciono componentes, paineis, etc depois uso pack() da java.awt.Window pra redimencionar tudo. Porém a tela toda dá uma “Piscada” q nao pega bem. Tem como fazer esse “Redimensionamento” sem que a tela precise piscar???

Se alguém souber vai me ser muito útil. ^^

Desde já agradeço!

3 Respostas

L

Acho que ser você fizer o pack() antes de setar o Window como visible isso não ira acontecer.

T

nem uso o setVisible()…
minha classe estende de JDialog e eu uso o pack. Depois o setModal, depois o super.show() e finalemnte o dispose().

E continua piscando cada vez q clico num botao q realiza ações de adicionar e modificar tamanho de componentes usando o pack() no final. É uma piscada horrível, nem dá pra entragar um programa desse jeito heheh!

^^

C

Primeiro é melhor usar setVisible(true), porque show() tá deprecated. Se o JDialog for modal dá no mesmo.

Eu já fiz telas onde componentes aparecem e desaparecem, e não preciso chamar o pack(), o LayoutManager cuida de tudo.

Tb nunca vi essa piscada que vc tá falando. Só uma vez que tava usando a propriedade “sun.java2d.opengl=true” em uma máquina com Windows sem o driver próprio da placa de vídeo. Mas essa propriedade é experimental mesmo e acho que não é o seu caso.

Quanto ao redimensionamento, uma vez vi (em algum lugar na net) que tem um parâmetro que faz o Swing se atualizar enquanto a janela é redimensionada, e não só quando o redimensionamento acaba. Mas procurei agora no google e não achei.

Espero ter mais ajudado do que atrapalhado. Se puder postar um código de exemplo talvez possamos te ajudar mais.

Criado 6 de outubro de 2006
Ultima resposta 6 de out. de 2006
Respostas 3
Participantes 3