Metodo que roda a cada x segundos

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);
    }
}

}

O que você que dizer com isso?

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

É 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.

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.

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