package 项目三;
import javax.swing.*;
import java.awt.*;
import java.util.*;
public class Xunlian六
{
private JFrame jf;
private JLabel labe11;
private JLabel labe12;
private JLabel labe13;
//构造方法
public Xunlian六( )
{
jf=new JFrame("倒计时牌");//创建窗体,标题是“倒计时牌”
labe11=new JLabel("距离五一假期还有:");//labe11上提示倒计时内容
labe12=new JLabel("");//labe12中显示剩余时间
labe13=new JLabel("设计者:java老师祝大家节日快乐!");//labe12中显示剩余时间
jf.add(labe11,BorderLayout.NORTH);//添加喇叭1到窗体上方
jf.add(labe12,BorderLayout.CENTER);//添加喇叭1到窗体中间
jf.add(labe13,BorderLayout.SOUTH);//添加喇叭1到窗体下方
//创建RefreshTimeThread对象t
Thread t=new RefreshTimeFrameThread(new GregorianCalendar(2021,Calendar.MAY,1,0,0,0));
t.start( );//启动线程
}
//封装窗体的显示方法
public void showMe( )
{
jf.setBounds(200, 200, 300, 150);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//主方法,生成TimeFrame对象并显示
public static void main(String[] arg)
{
new Xunlian六( );
}
//定义RefreshTimeFrameThread类,继承Thread类
class RefreshTimeFrameThread extends Thread
{
private Calendar targetTime;
//构造方法,传入倒计时的时间
public RefreshTimeFrameThread(Calendar targetTime)
{
this.targetTime=targetTime;
}
//重写run方法
public void run()
{
while(true)
{
//创建GregorianCalendar对象即现在的时间
Calendar todayTime=new GregorianCalendar();
//定义long类型的seconds,表示剩余的秒数
long seconds=(targetTime.getTimeInMillis()-todayTime.getTimeInMillis())/1000;
if(seconds<=0)//如果时间小于0,则说明时间到
{
labe12.setText("时间到!");
break;
}
int day=(int)(seconds/(24*60*60));
int hour=(int)(seconds/(60*60)%24);
int min=(int)(seconds/60%60);
String str=" "+day+" 天"+hour+"时"+min+"秒";
labe12.setText(str);//刷新labe12上的时间
try{
Thread.sleep(1000);//每秒睡1秒,则计时牌时间每秒变一次
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}
}
你在线程调用的函数里面用print输出数据看看,不报错因为线程执行的程序出错不会提示异常
labe12.setText(str);//刷新labe12上的时间
这种方式放在线程里面循环是不会刷新的,要传一个label2的引用到线程里面。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y