截止日期2021年12月25日零点
代码借鉴了教科书
import javax.swing.*;
import java.awt.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Timerframe {
private Jframe jf;
private JLabel label1;
private JLabel label2;
public Timerframe() {
jf = new Jframe("倒计时牌");
label1 = new JLabel("距离考研");
label2 = new JLabel(" ");
jf.add(label1, BorderLayout.NORTH);
jf.add(label2, BorderLayout.CENTER);
GregorianCalendar deadline = new GregorianCalendar();
deadline.set(2021,11,25,0,0,0);
Thread t = new RefreshTimeThread(deadline);
t.start();
}
public void showMe(){
jf.setBounds(200,200,300,150);
jf.setVisible(true);
jf.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Timerframe().showMe();
}
class RefreshTimeThread extends Thread{
private Calendar targetTime;
public RefreshTimeThread(Calendar targetTime){
this.targetTime=targetTime;
}
@Override
public void run(){
while(true){
Calendar todayTime=new GregorianCalendar();
System.out.println(todayTime.getTime());
long seconds=(targetTime.getTimeInMillis()-todayTime.getTimeInMillis())/1000;
if(seconds<=0){
label2.setText("时间到");
break;
}
int day=(int)(seconds/(24*60*60));
int hour=(int) (seconds/(60*60)%24);
int min=(int)(seconds/60%60);
int sec=(int)(seconds%60);
String str=day+"天"+hour+"时"+min+"分"+sec+"秒";
label2.setText(str);
try{
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}



