JLabel não aparece

Pessoa estou inserindo um gif animado num JLabel e inicialmente seto sua visibilidade como false.
A intenção é que quando o usuário clique no botão eu sete sua visibilidade para true e a animação apareça.

O problema está justamente aí! Eu estou setando mas a imagem não aparece de jeito nenhum!

PS: estou utilizando uma thread pra fazer isto, mas nada acontece…

Aqui está minha thread

 public void run(){
            while(!parar){//"parar" é uma variavel booleana que indica o funcionamento da thread
                if(status)//"status" é uma variavel boleana que indica quando a imagem deve fica visivel ou não
                java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                  jLabel5.setVisible(true);
                  System.out.println("mostraa imagem");//teste para ver se realmente ele entra na condição.
            //na verdade entra mas somente quando sai do método em quem eu faço MinhaThread.setStatus(true);
            }
        });
                else
                    java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                  jLabel5.setVisible(false);
            }
        });
        }
                try {
                    this.sleep(300);
                } catch (InterruptedException ex) {
                    Logger.getLogger(GuiInit.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            
    }

Eu a inicio no construtor da classe e quando preciso que a imagem apareça eu seto a variavel booleana "status " como true.

Oi,

Por que não coloca no evento do botão…


jLabel5.setVisible(true);  

Anime, não sei se vc entendeu meu código…mas estou fazendo exatamente isto!
Como estou tratando com algo animado, optei por trabalhar com uma Thread pra tentar evitar justamente este erro que está acontecendo!

Se eu fizesse como vc indicou, aí sim este erro seria compreendido pela minha parte.(pois somente isto não iria funcionar)!

Porém como estou trabalhando com uma Thread e a cada mudança de visibilidade eu faço também um pedido a Thread do swing para a mesma, não entendo o pq de não estar funcionando corretamente!

Alguém mais tem uma luz???

[quote=igor_jua]Anime, não sei se vc entendeu meu código…mas estou fazendo exatamente isto!
Como estou tratando com algo animado, optei por trabalhar com uma Thread pra tentar evitar justamente este erro que está acontecendo!

Se eu fizesse como vc indicou, aí sim este erro seria compreendido pela minha parte.(pois somente isto não iria funcionar)!

Porém como estou trabalhando com uma Thread e a cada mudança de visibilidade eu faço também um pedido a Thread do swing para a mesma, não entendo o pq de não estar funcionando corretamente!

Alguém mais tem uma luz???[/quote]

Entendi,mas não tinha entendido o por que… :stuck_out_tongue:

Realmente pensei que com gif animado não daria certo…

Espero que ajude…http://www.devdaily.com/blog/post/jfc-swing/use-animated-gif-image-in-jfc-swing-application/

Por que você chama setVisible(true) num loop?

Aliás, para que aquela thread?

Olá Vine, na tentativa de fazer funcionar fiz dessa maneira, tendo em vista que somente chamando o setVisible(true) dentro da THread do swing não dava certo.