如何减少数字时钟程序(java)的闪烁?

时间:2016-06-19 05:58:48

标签: java applet

我正在制作一个简单的数字时钟。我想从程序运行时删除闪烁。我尝试了不同的睡眠时间,但没有用。

public class DigitalClock extends Applet implements Runnable{

Thread t=null;
int hrs=0, min=0, sec=0;
String tString="";
public DigitalClock(){
    //TODO add required code
    init();
}

public void init() {
    // TODO Auto-generated method stub
    setBackground(Color.BLACK);
}

public void start(){
    t=new Thread(this);
    t.start();
}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    DigitalClock dc=new DigitalClock();
    JFrame f=new JFrame("Digital Clock");
    f.setSize(300, 300);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.add(dc);
    dc.start();
    f.setVisible(true);
}

@Override
public void run() {
    // TODO Auto-generated method stub
    try {
        while(true){
            Calendar cal=Calendar.getInstance();
            hrs=cal.get(Calendar.HOUR_OF_DAY);
            min=cal.get(Calendar.MINUTE);
            sec=cal.get(Calendar.SECOND);
            tString=hrs+":"+min+":"+sec;
            repaint();
            Thread.sleep(40);
        }
    } catch (Exception e) {
        // TODO: handle exception
    }
}
public void paint(Graphics g){
    g.setColor(Color.white);
    g.drawString(tString, 50, 50);
}

}

我如何使用paintComponent方法。它会有助于减少闪烁吗?

1 个答案:

答案 0 :(得分:1)

使用javax.swing.Timer代替睡眠循环。