Metodo que roda a cada x segundos

5 respostas
J

Pessoal, meu primeiro post pq não encontrei respostas. To precisando de um método que rode a cada x segundos.
Tudo que eu tenho é isso… Porem a classe principal não aceita métodos não estáticos e e difícil fazer o que eu quero com métodos estaticos porque queria implementar isso depois em um JFrame…

package executarmetodo;

import java.util.Timer;
import java.util.TimerTask;

public class ExecutarMetodo {

public static void main(String[] args) {
    
}
public static void teste() {
    Timer timer = null;
    long TEMPO = (1000 * 1); // chama o método a cada 3 segundos 
    if (timer == null) {
        timer = new Timer();
        TimerTask tarefa = new TimerTask() {
            public void run() {
                try {
                    //chama outro metodo ou executa uma função...
                } catch (Exception e) {
                    System.out.println(e.getStackTrace());
                }
            }
        };
        timer.scheduleAtFixedRate(tarefa, TEMPO, TEMPO);
    }
}

}

5 Respostas

staroski

O que você que dizer com isso?

J

Oi, vlw por responder. Precisava que esse método ai “teste” não fosse estático e continuasse funcionando.
Se eu tiro a palavra “static” dele não consigo chamar outros métodos dentro desse

staroski

É que você precisa criar uma instância da classe para poder invocar os métodos não estáticos.
Métodos estáticos são métodos de classe, métodos não estáticos, são métodos de instância.

J

Boa staroski funcionou…
Joguei aquele método em uma outra classe(sem ser a principal) com isso consegui remover o static, ai na classe principal instanciei um objeto dessa nova classe, acessei o método normal. Ficou show, vlw msm.

staroski

Poderias ter deixado na classe principal, era só instanciar ela no método main.

Criado 1 de junho de 2017
Ultima resposta 7 de jun. de 2017
Respostas 5
Participantes 2