/**
* Write a description of class TestTimer here.
* Class untuk waktu rambu lalu lintas
* @Ghifari Astaudi\'Ukumullah
* @19 Okt 2020
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TestTimer extends JPanel
{
//inisasi detik
private int detik;
//kelas dimensi untuk mengatur ukuran yang disukai
public Dimension getPreferredSize(){
//besar panjang dan lebar suatu string
FontMetrics font = getFontMetrics (getFont());
return new Dimension (font.stringWidth("00"), font.getHeight());
}
public void setValue (int newnilai){
//kondisi bahwa detik tidak sama dengan newvalue
if (detik != newnilai){
detik = newnilai;
repaint(); //menggambar ulang panel
}
}
public int getvalue(){
return detik;
}
//fungsi menampilkan integer sebagai string
private String pad (int value){
return String.format ("%02d",value);
}
protected void paintComponent(Graphics grafik){
super.paintComponent(grafik);
//font waktu dan ukuran waktu 25
grafik.setFont (new Font ("LCD",Font.PLAIN,25));
FontMetrics font = getFontMetrics(grafik.getFont());
String text = pad (getvalue());
int x = (getWidth () - font.stringWidth(text)) / 2;
int y = ((getHeight() - font.getHeight())/2 + font.getAscent());
grafik.drawString(text,x,y);
}
}