Dalam bahasa pemrograman java kita bisa membuat semacam pewaktu (timer) sederhana dengan memanfaatkan class Timer (javax.swing.Timer). Walaupun sederhana tapi class ini sangat berguna terutama untuk membuat semacam animasi yang membutuhkan pewaktu, seperti membuat jam, animasi teks berjalan, atau untuk fungsi-fungsi lain.
Kali ini akan saya contohkan dalam pembuatan timer sederhana yang mensimulasikan stopwatch, program ini akan menghitung detik mulai detik ke-0, 1, 2, dan seterusnya.
// kita import dulu dari library segala sesuatu yang kita butuhkan
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
// kita buat kelas timer yang meng-extends JFrame sebagai tampilan GUI
public class timer extends JFrame{
private Timer myTimer;
private int jam=0, menit=0, detik=0;
private JLabel mylabel;
public timer(){
// inisialisasi tampilan
mylabel = new JLabel(“time”);
this.add(mylabel);
this.setVisible(true);
this.setSize(50,50);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// inisialisasi timer, parameter pertama adalah delay-nya (dalam milisekon)
// dan yang kedua adalah kelas yang akan menghandle timernya
myTimer = new Timer(100, new TimerHandler());
// jika inisialisasi selesai kita mulai pewaktunya
myTimer.start();
}
// Kelas yang menghandle timer
private class TimerHandler implements ActionListener{
private String buff;
private void write(){
buff = String.format(“ %s%3d :%3d :%3d”, “Timer: “,jam, menit, detik); // penampung string
mylabel.setText(buff); // tampilkan ke layar
}
// tulis yang akan dilakukan program di dalam fungsi override ini
public void actionPerformed(ActionEvent e) {
detik++;
if(detik==60){ detik=0; menit++; }
if(menit==60){ menit=0; jam++; }
if(jam==24){ jam=0; }
this.write();
}
}
}
Jika sudah, panggil kelas ini di kelas main/kelas utama.
public class main {
public static void main(String[] args){
new timer();
}
}
Hasilnya :
Intinya setiap waktu delay (yang didefinisikan di new Timer(Delay, kelas handler)) program akan menjalankan fungsi atau perintah yang ada di dalam kelas handler.
Penggunaan timer ini sangat luas untuk berbagai macam kebutuhan tergantung dari kreatifitas kita dalam memanfaatkannya. Semoga pengetahuan ini bisa menambah pengetahuan kita bersama :D.
bagus tutorialnya cm kalo indentasinya di benerin aoalagi kalo mau di kasi warna bakal lebih menarik
bagus juga nih tutorialnya, bener kata XBow codingnya kurang rapi tuh, jadi liatnya agak bingung,..
sori kalo kurang rapi, langsung copy paste dari compiler, lain kali dirapihin deh. thanks sarannya
wah emang lagi aku cari cari nih,,,
nice tutor 4kitsuki,,,
oya mo nanya, kalo TimerHandler-nya mo dibuat class sendiri, supaya bisa dipake di beberapa class laen, gimana caranya?
kayaknya caranya mirip, cuma contohku kan pake private class, buat aja class baru yang implements Action Listener, nanti kalo nggunainnya tinggal instance di class yang mau diimplementasikan timernya
makasih mas,bagus…codingnya..sy kebetulan jg lagi cr ttg timer.
BTW,mo tanya mas..kalo untuk menghentikan stopwatchnya & set dari 0 lagi gimana ya mas…??
thanks
buat aja method yang manggil fungsi myTimer.Stop(), lalu reset variabel jam, menit, detik ke 0 lagi..
tengkiu Mboe…takpikir Blog e sopo tibake blogmu
gue bingung liat algoritmanya