Problema com Timer

5 respostas
D

Bom, estou tentando fazer um Timer, fiz... ele executa até a ultima linha, mas depois disso gera uma exception...

segue o codigo.

package br.edu.home.timer;
import java.util.Timer;
import java.util.TimerTask;

public class Cronometro extends TimerTask {
    Timer relogio;

    public Cronometro (int segundos){
        relogio = new Timer();
        relogio.schedule(new Alarme(), segundos*1000);

    }

public Cronometro (){}

    @Override
    public void run() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

        }

segue a outra classe.

package br.edu.home.timer;
import java.awt.Toolkit;


public class Alarme extends Cronometro {
    @Override

    public void run(){
        Toolkit.getDefaultToolkit().beep();
              System.out.println("seu tempo acabou!");

    relogio.cancel();// Thread finalizada
   
}
    }

agora fazendo o programa funcionar.

package br.edu.home.teste;
import br.edu.home.timer.*;


public class Teste

     public static void main(String[] args)

          new Cronometro(5);

Ele executa perfeitamente, acho que só não faz o bib, e no final gera uma exception, segue a saida do programa.

seu tempo acabou!
Exception in thread "Timer-0" java.lang.NullPointerException
        at br.edu.home.timer.Alarme.run(Alarme.java:18)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)

5 Respostas

ViniGodoy

O certo não era Relogio.schedule(this, segundos * 1000) ?

D

bom, sou iniciante em java, tentei com o “this” so que agora acontece uma outra exception.

Exception in thread "Timer-0" java.lang.UnsupportedOperationException: Not supported yet.
        at br.edu.clocks.testes.Cronometro.run(Cronometro.java:28)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)

Agradeço desde já

ViniGodoy

Sim, daí no caso você teria que criar com

new Alarme(5);

E não

new Cronometro(5);

Pode ver que essa exception é você mesmo que lança, no método run da classe Cronometro.

D

Mas quando eu criasse esse objeto o metodo construtor nao teria que ter algum parametro?
ou eu criaria o objeto apartir do construtor sem parâmetros?

D

Bom, consegui resolver meu problema… o metodo run executa oque eu quero depois que passa o tempo, no caso eu estava dando o comando errado… agora esta tudo funcionando perfeitamente!

Problema Resolvido!

Criado 19 de maio de 2010
Ultima resposta 21 de mai. de 2010
Respostas 5
Participantes 2