Contagem Regressiva

4 respostas
E

Oi pessoal!!!

Tudo bom!?

Eu estou precisando fazer uma contagem regressiva e não estou sabendo como…

Tipo eu faço uma consulta no banco de dados, ae eu pego a data de enceramento de um evento, e com isso eu precisaria colocar em meu applet, um contador regressivo que ira contando, até o dia e hora do evento, mas eu nem imagino como fazer…

Uso a classe Timer?
Uso um While?
Uso um for?

Mas se eu usar While ou For… como vou saber que se passou 1 segundo?

Acho que talvez Timer seja o mais indicado né?

Vocês poderiam me ajudar?!

t+!!

Valewzão!!!

4 Respostas

M

Veja se isso resolve:

public class DateTest extends JDialog {
  private static final long serialVersionUID = 1L;

  private JLabel lab = new JLabel();
  private Date dateEvent = new Date();

  public DateTest() throws ParseException {
    super();
    setTitle("Tempo restante. - Maicon Berndt");
    getContentPane().add(lab);
    setSize(400, 100);
    setVisible(true);

    dateEvent = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("26/10/2004 18:00:00");
    new setContageThread(lab, dateEvent);
  }

  public static void main(String[] args) throws Exception {
    new DateTest();
  }

  //Thread para apresentação do tempo restante.
  private class setContageThread extends Thread {
    private JLabel lab;
    private Date dateEvent;

    public setContageThread(JLabel lab, Date dateEvent) {
      this.lab = lab;
      this.dateEvent = dateEvent;
      start();
    }

    public void run() {
      while (true) {
        try { sleep(100); } catch (InterruptedException e) {}
        Date dateAtua = new Date();
        Date dateRest = new Date(dateEvent.getTime() - dateAtua.getTime() + 10801000);

        int diasRest = dateRest.getDate() - 1;
        int mesesRest = dateRest.getMonth();
        int anosRest = dateRest.getYear() - 70;

        int horasRest = dateRest.getHours();
        int minsRest = dateRest.getMinutes();
        int seguRest = dateRest.getSeconds();

        String contagem = ("    Faltam: " + diasRest + " dia/s, "
                + mesesRest + " mes/es, " + anosRest + " ano/s - "
                + horasRest + "hs, " + minsRest + "min, " + seguRest + "segs.");

        lab.setText(contagem);
      }
    }
  }
}

Abraço,
Maicon

L

Usa uma Thread com um timer.

E

Maicon!!!

Você é o cara!!!

Era EXATAMENTE isso que eu tava querendo, serviu direitinho para o que eu queria!!

E valew a dica tambem carinha!!

M

Vlw…

Achei massa esse código !!! :grin:

Abraço,
Maicon

Criado 26 de outubro de 2004
Ultima resposta 11 de nov. de 2004
Respostas 4
Participantes 3