Como fazer Contagem regressiva? [RESOLVIDO]

Pessoal, eu quero fazer uma contagem regressiva de 30 segundos…
Uma jLabel vai ficar rebendo… (30,29,28,27) até o 0…
Como faço isso?
Não sei nem por onde começar… (Como que eu implementaria para realizar determinada função de 1 em 1 segundo?)
Alguém pode me dar uma luz?
Vlw…

Regreciva não sei, sei que regressiva pode usar Thread.sleep().

Use um javax.swing.Timer.

Alguém tem um exemplo ae?
nunca usei essas coisas :frowning:

Fala garoto…
Procurei no forum, e achei este post, que utiliza o Timer:

http://www.guj.com.br/posts/list/139091.java

Blz?

Valeu, abraco!
:stuck_out_tongue:

O link que você me passou é de pegar a hora do sistema…
E o código do cara tá todo confuso, que nem ele entende…
Dentro do código tem Quote, dentro do Quote tem Code…
Além disso, ele não posto a parte do incremento…

Fala pedroroxd

http://www.guj.com.br/posts/list/52964.java#279083

Neste post tem como pegar a hora do sistema… Tem 3 exemplos nele…

Usando Thread
Usando Timer do pacote Swing
Usando Timer do pacote Util.

É só adaptar para a sua necessidade.

Thiago bernardo? Santa Rita do Sapucaí?
Eita… o mundo é pequeno mesmo! :wink:

Bom…

[code] private class ClockRunnable implements Runnable {
public void run() {
try {
while (true) {
EventQueue.invokeLater(new Runnable() {

                       public void run() {                              
                       }
                   });
                   Thread.sleep(1000);
                   int t=30;   // NAO EH AKI!                    
                   busaka(t);
               }
           }
           catch (InterruptedException e) {
           }
       }
   }[/code]

Beleza… de um em 1 segundo ele vai chamar o busaka:

public void busaka (int t) { t=t-1; String k = Integer.toString(t); jLabel1.setText(k); }

Mas no caso, toda hora o valor de t vai receber 30, o que vai fazer a jLabel1 ficar sempre no 29…
Como faço para a variável t ser “global”?
Eu declaro era em algum lugar diferente?
Vlw…

          private class ClockRunnable implements Runnable {
           public void run() {
               try {
                   int t=30;   // EH AKI!  
                   while (true) {
                       EventQueue.invokeLater(new Runnable() {
                           
                           public void run() {                              
                           }
                       });
                       Thread.sleep(1000);                  
                       busaka(t--);
                   }
               }
               catch (InterruptedException e) {
               }
           }
       }

E o busaka não precisa diminuir 1.

E voce ainda pode fazer o while(t >= 0)
Por que se não ele nunca vai parar e continuar nos negativos.

Opa…
Valew ae…
Resolvido :smiley: