• Categoria do post:Java - NetBeans
  • Tempo de leitura:2 minutos de leitura
Ads

Programando tarefas repetidas no Java

Em projetos do Windows Forms (Visual Studio) temos o componente Timer() quer permite programar tarefas em C#, no qual definimos um intervalo que desejamos que a tarefa seja repetida.

Já no java, não temos nenhum componente para programarmos, mas podemos usar a classe Timer().

A sintaxe do código é muito simples;

int delay = 5000;   // tempo de espera antes da 1ª execução da tarefa.
int interval = 1000;  // intervalo no qual a tarefa será executada.
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
  public void run() {
    System.out.println("Olá World!");            
  }
}, delay, interval);

Com este código em mãos podemos então criar quantos métodos forem necessários, veja um exemplo de como podemos criar 2 métodos para tarefas diferentes usando o código acima;

Timer timer1 = new Timer();
Timer timer2 = new Timer();
    
public void Tarefa1(){
        int delay = 2000;   // delay de 2 seg.
        int interval = 5000;  // intervalo de 1 seg.       

        timer1.scheduleAtFixedRate(new TimerTask() {
        public void run() {
            JOptionPane.showMessageDialog(null, "Executei a Tarefa 1");         
        }
        }, delay, interval);
    }
    
public void Tarefa2()
    {
        int delay = 0;   // delay de 0 seg.
        int interval = 2000;  // intervalo de 2 seg.        

        timer2.scheduleAtFixedRate(new TimerTask() {
                public void run() {
                    System.out.println("Olá World no console");
                }
            }, delay, interval);
    }

No exemplo acima, perceba que foram criados fois objetos, timer1 e timer2 para que o código pudesse ficar mais organizado. Desta forma também podemos parar os timers criando uma outra classe;

 public void PararTarefas(){
       // Encerra as tarefas	
       timer1.cancel();
       timer2.cancel();
    }

Agora basta chamar os métodos dentro de um botão, ou, se deseja que a aplicação inicie as tarefas automaticamente, chame os métodos logo depois da linha initComponents(); da classe que deseja programar as tarefas.

        this.Tarefa1();   
        this.Tarefa2();  

Exemplo para download – Timer em Java

Para ver o código em ação, baixe o projeto em; https://aulas-profanderson.azurewebsites.net/lpoo/jTimerExemplo.zip

Ads

Anderson Oliveira

Anderson Oliveira é desenvolvedor, escritor e docente no CEETPS - Centro Estadual de Educação Tecnologia de São Paulo. Atualmente trabalha na Administração Central do CPS e leciona aulas de programação na Etec Prof. Carmine Biagio Tundisi de Atibaia.