Java Timer Kullanımı

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.TimerTask;
import java.util.Timer;

public class Calistir extends JFrame implements ActionListener {
 
	JLabel jlb;
	Timer timer;
	public Calistir()  {
		this.setTitle("Timer Kullanımı");
		this.setSize(220, 150);
    	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    this.setLayout(new FlowLayout());
		
	    JPanel jpn_main=new JPanel();
	    jpn_main.setPreferredSize(new Dimension(220, 150));
	    
	    jlb=new JLabel("sayac=0");
	    jlb.setPreferredSize(new Dimension(180,30));
	    jpn_main.add(jlb);
	    String[] btn_txt= {"Baslat","Durdur"};
	    for(int i=0;i<btn_txt.length;i++) {
	    	JButton btn=new JButton(btn_txt[i]);
	    	btn.setPreferredSize(new Dimension(95, 25));
	    	btn.addActionListener(this);
	    	btn.setActionCommand(btn_txt[i]);
	    	jpn_main.add(btn);
	    }
	    this.add(jpn_main);
	   this.setVisible(true);
	}
	@Override
	public void actionPerformed(ActionEvent arg0) {
		if(arg0.getActionCommand().equals("Baslat")) {
			timer=new Timer();
		    TimerTask gorev=new TimerTask() {//görev
				
				@Override
				public void run() {// zamanı geldiğinde yapılacak işlemler
					
					yaz();
				}
			};
		timer.schedule(gorev,0,1);//ilk paremetresi yapilacak gorev 2. paremetresi ilk olarak ne kadar zaman sonra calissın
		}                              //3.paremetresi kac mlsnde tekrarlansın
		else {
			timer.cancel();//durdurmak için
		}
	}
	int sayac=1;
  public void yaz() {
	 int milisaniye=(sayac/10)%100;//sayac 1000 olduğunda milisaniye 0 olur 
	 int deger=sayac;
	 int saniye=((deger-(sayac%100))/1000)%60;
	 int dk=(((deger-(sayac%100))/1000)/60)%12;
	  jlb.setText("dk="+dk+" saniye="+saniye+" sayac="+milisaniye);
	  sayac++;
  }
	public static void main(String[] args) {
	new Calistir();
	}
}

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir