线程Thread实现界面定时提醒功能与时间显示

来源:互联网 发布:淘宝店铺装修宝贝分类 编辑:程序博客网 时间:2024/05/21 09:32

因为最近在做面向对象的实习,所以查阅了一些相关的资料搞出了点东西。


最开始是想怎样可以让他在不受控制的时候,就可以在后台显示时间,那方法也比较简单,分享给大家


import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;public class Remind implements Runnable{JLabel jj;JFrame jFrame;String rtime=null;String thing;Remind(JLabel J1) {jj=J1;// TODO Auto-generated constructor stub}Remind(String f,JFrame Jf,String sj) {rtime=f;jFrame=Jf;thing=sj;}int time=0;SimpleDateFormat m=new SimpleDateFormat("hh:mm:ss");//从系统获取时间Date date;public void run(){while(true){date=new Date();System.out.println(m.format(date));jj.setText(m.format(date));if(rtime!=null){if(m.format(date).equals(rtime)){JOptionPane.showMessageDialog(jFrame, thing);return;}}time++;try{Thread.sleep(1000);}catch(InterruptedException e){}}}}


定义了两周构造方法,第一种就是
Remind(JLabel J1)
选择一个JLabel,用来显示时间,线程运行后开始会获取系统时间,然后每隔1000毫秒(一秒)更新一次,大概效果就是这样


然后控制台也有相应输出。


第二种构造方法就是

Remind(String f,JFrame Jf,String sj) 
传入字符串f,也就是提醒的时间

JFrame Jf 提醒的窗口位置,从哪个窗口提醒,可以考虑写null

字符串sj是提示信息

到达f写的时间就会提醒,主要f的格式(小时:分钟:秒)


可以在主程序中这样来书写:

构造方法一:

 JLabel jl = new JLabel();// 注意类名别写错了。       frame.getContentPane().add(jl);       jl.setText("这是新窗口");       Remind r1=new Remind(jl);       Thread qThread=new Thread(r1);       qThread.start();
构造方法二:

String time="08:00:00";
String remindMessage="Wake me up"
Remind r1=new Remind(time,null,remindMessage);       Thread qThread=new Thread(r1);       qThread.start();
希望能帮到大家~



1 0