vc já tentou o método  repaint()  ?
-----Original Message-----
From: vitor <[EMAIL PROTECTED]>
To: Lista SouJava <[EMAIL PROTECTED]>
Date: Thursday, March 02, 2000 11:07 PM
Subject: [SouJava-J] HELP ! Como atualizar JLabel (meio longo)


>Olah JavALL Gurus ! Estou precisando de uma dica !
>
>Eh o seguinte: tenho um JFrame ao qual foi adicionado um JLabel  (no
>codigo exemplo atachado, eh o JLabel l2). Quero poder alterar o conteudo
>do JLabel (para isso estou usando o metodo setText()) e fazer com que
>esta alteracao seja imediatamente apresentada ao usuario da aplicacao. O
>problema eh que naum estou conseguindo fazer isto acontecer.
>Consultei o Java FAQ e lah encontrei a referencia aos metodos
>invalidate() e validate() (a ideia eh invalidar o componente e forcar o
>seu redesenho com o validate()). Segue o texto exato do JavaFAQ:
>
>"10.(Sect. 19) When I change some component (e.g. a new label on a
>button) I don't see the change on the screen immediately even if I
>repaint().
>You need to add these calls, instead of the repaint():
>          invalidate();
>          validate();
>They cause the component hierarchy to be marked as needing to be laid
>out again, and the validate causes that to be done. It may be expensive,
>but is always the most reliable way of getting the peers to recalculate
>size and to do what is needed to bring the display up to date. "
>
>Mesmo assim, naum consegui fazer funcionar. Como estou com este problema
>jah hah alguns dias, tentei muitas outras solucoes e nenhuma delas
>funcionou, por exemplo:
>- utilizar Frame e Label ao inves de JFrame e JLabel (naum funcionou);
>- utilizar update() e / ou repaint() ao inves de invalidate() e
>validate() (e tbem naum funcionou)
>- chamar diretamente o metodo resize() com o parametro setPreferenceSize
>(ou algo parecido) e tbem naum funcionou
>- misturar as chamadas aos metodos validate() e invalidate (ora eu fiz
>l2.invalidate(); l2.validate(); ora eu fiz l2.invalidate();
>this.validate(); - para validar o proprio JFrame) mas, adivinhem :,(
>tbem naum deu certo.
>- fazer com que a propria classe Teste implementasse a interface
>Runnable, colocando o metodo run() dentro da classe Teste (isto ateh
>funcionou, mas naum resolveu o meu problema, pois eu preciso que a minha
>aplicação atualize o JLabel com conteudos obtidos de diferentes Threads
>- uma Thread para relogio, uma Thread para avisar do salvamento
>automatico de um arquivo, uma Thread para avisar que chegou e-mail etc)
>
>Para demonstrar melhor o que (naum :)) estah acontecendo, estou
>atachando um pequeno programa exemplo (Teste.java) que tenta, mas naum
>consegue, atualizar o JLabel l2, muito embora atualize um outro JLabel
>l1 com o mesmo metodo setText() (e por que isto acontece me eh
>incompreensivel ).
>Portanto, estou precisando de ajuda pois estah ficando frustrante naum
>conseguir resolver um problema aparentemente simples como este.
>
>Agradeco antecipadamente qualquer auxilio !
>
>[]s e ateh depois !
>------------------------------------------------------------------
>VITOR BRANDI JUNIOR - email: [EMAIL PROTECTED]
>FCTI - Faculdade de Ciencia e Tecnologia da Informacao
>UNIMEP - Universidade Metodista de Piracicaba
>Fone: 02119 4301689 - URL: http://fcti.unimep.br/pessoais/vitor
>------------------------------------------------------------------
>
>

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
    [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a