Classe swing.Timer

3 respostas
A

Kra eu to com problemas qndo vou usar o timer da swing! Alguem conhece alguma outra classe q implemente um temporizador, atrelado a eventos?

O meu problema eh q eu n consigo pausar o delay, e comecar de onde eu parei. n consigo tambem associa-lo a outro objeto do tipo Swing.Timer

jah tentei de tudo! se alguem souber ou jah tiver usado essa classe e tenha alguma experiencia por favor me ajude!
Agradeço desde jah!

[]'s

3 Respostas

Pedrosa

Estou usando assim uma classe de timer:

public final class TimerCall {

	/** Constantes */
	private static final int TIME = 1000;
	/** Atributos */
	private static DateFormat dateFormat = null;
	private static Calendar calendar = null;
	private static Timer timer = null;

	static {
		dateFormat = new SimpleDateFormat("HH:mm:ss");
		calendar = Calendar.getInstance();
		calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
	}
	
	/** Construtor */
	private TimerCall() {}

	/**
	* Objetivo: Iniciar o timer da ligação 
	* Data: 07/08/2006
	* @param action ActionListener
	*/
	public static void startTimer(ActionListener action) {
		timer = new Timer(TIME, action);
		timer.start();
	}
	
	/**
	* Objetivo: Parar o timer da ligação 
	* Data: 07/08/2006
	*/
	public static void stopTimer() {
		System.out.println("stopTime()");
		if(timer.isRunning()) {
			timer.stop();
			resetTimer();
		}
	}
	
	/**
	* Objetivo: Zerar o timer da ligação 
	* Data: 07/08/2006
	*/
	protected static void resetTimer() {
		calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        timer = null;
	}

   /**
   * Objetivo: Montar o timer 
   * Data: 07/08/2006
   * @return String
   */
	public static String getTime() {
		calendar.add(Calendar.SECOND, 1);
		if(timer != null) {
		    return dateFormat.format(calendar.getTime());
		}
		return "";
    }
}

Para restartar o use o metodo restart

Deh

deixa eu ver se eu entendi =S
você quer que o seu programa pare com um determinado tempo?

se for isso você pode usar o Thread.sleep(long millis);

exemplo

public class exemplo {
  public static void main(String args[]) {

    try {
      Thread.sleep(5000);
    } 
    catch (Exception e) {
    }
    System.out.println("e se passaram 5 segundos de delay \o\");
  }
}

=P

editado: acho que eu peguei a idéia errada da pergunta ae o.O desculpa ae \o\ desconsidere o meu post =///

A

ahuahauhauha! blzzz o importante eh a intecao de ajudar… mas eh o seguinte…

vou explicar exatamente o q eu preciso…
meu programa mostra na tela uma palavra a cada 2 segundos, para isso estou usando o Swing.Timer, o problema eh… durante o aparecimento dessa palavra eu quero poder apertar uma tecla e passar para a proxima… isso tudo eh um evento q ocorre em funcao do delay q eu coloco na classe… todo o problema eh q esta classe n permite q eu faça isso…

Criado 21 de setembro de 2006
Ultima resposta 21 de set. de 2006
Respostas 3
Participantes 3