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