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] ---------------------------------------------------------------------