我正在制作一个简单的数字时钟。我想从程序运行时删除闪烁。我尝试了不同的睡眠时间,但没有用。
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方法。它会有助于减少闪烁吗?
答案 0 :(得分:1)
使用javax.swing.Timer
代替睡眠循环。