Redesenhar um JPanel

8 respostas
fzampa

Pessoal,

tenho um painel aonde vou adicionando JLabels em tempo de execução…

acontece que toda vez que adiciono um JLabel ele nao aparece até que eu maximize ou redimensione o JFrame.

Como fazer para poder resenhar o JFrame (ou o JPanel ou o JLabel) para que ele apareca sem ter que redimensionar???

Obrigado…

Daqui a pouco me transformo em Forum Spammer só mandando perguntas… 8)

8 Respostas

danieldestro

Estranho, sua tela deveria se repintar, creio eu.

Senão, chama o método repaint().

fzampa

Deixa eu explicar:

Utilizo o Sun One (Net Beans) para modelagem das telas.

Esse JLabel é uma “exceção”, pq é o único que vou adicionando…

O código de adição segue:

JLabel textoComp = new JLabel("Meu JLabel");
     jPanel00_00.add(textoComp);     
     textoComp.repaint();
     jPanel00_00.repaint();
     //nenhum dos dois faz aparecer...
    //se eu fizer pack(); ele refaz a tela toda mas não fica bom, pq 
   //perde o tamanho original.    

     textoComp.addMouseListener(new MouseAdapter()
     {
      public void mouseClicked(MouseEvent event)
      {
       System.out.println("Clicou no label 00:00");
      }
     });
fzampa

Consegui!

jPanel00_00.revalidate();

Alguem sabe o que é revalidate() ???

danieldestro

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JComponent.html#revalidate()

fzampa

Porque então no meu caso não era automaticamente chamado???

Aqui falou que as interfaces AWT não são automáticas e Swing são? ou foi o contrário?

Pq então o meu javax.swing.JLabel não foi?

Valeu…

danieldestro

Por isso repito: Estranho!

velo

fzampa:
Pessoal,

tenho um painel aonde vou adicionando JLabels em tempo de execução…

acontece que toda vez que adiciono um JLabel ele nao aparece até que eu maximize ou redimensione o JFrame.

Como fazer para poder resenhar o JFrame (ou o JPanel ou o JLabel) para que ele apareca sem ter que redimensionar???

Obrigado…

Daqui a pouco me transformo em Forum Spammer só mandando perguntas… 8)

Voce tambem pode usar o metodo show() da JFrame!!

VELO

fzampa

Agora testei e o show() tb funcionou, mas o revalidate() é mais indicado.

Obrigado pessoal. :stuck_out_tongue:

Criado 15 de novembro de 2004
Ultima resposta 16 de nov. de 2004
Respostas 8
Participantes 3