编写一个图形界面程序,运行之后,让其中有一个线程能在界面上“实时” 显示系统当前时间(精确到秒获取时间可查询 java.util.Calendar 类,它包含了多个用于获得系统时间 的函数) 。另让一个线程可以在界面上提示当前系统时间下用户该做什么工作(例如当程序判断出系统时 间现在是 8:00 到 9:00,则提示用户该上课;现在是 23:00 到 8:00,则提示用户该休息。 具体测试 时可以将时间段限制到秒级,以便及时查看到程序运行中提示信息的变化) 。
import java.util.*;
import javax.swing.*;
public class E {
//创建一个窗口
JFrame jf=new JFrame("Time");
//创建文本域
static JTextField te1=new JTextField("");
static JTextField te2=new JTextField("");
//构造方法
public E(){
//窗口大小
jf.setSize(600, 400);
//窗口的布局
jf.setLayout(null);
//文本域的大小
te1.setSize(200,200);
te2.setSize(200,200);
//文本域的位置
te1.setLocation(0,0);
te2.setLocation(300,0);
//把文本域添加到窗口上
jf.add(te1);
jf.add(te2);
//窗口可见
jf.setVisible(true);
jf.setResizable(true);
//窗口的关闭
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
//创建线程对象
Thread1 t1=new Thread1();
Thread2 t2=new Thread2();
new E();
//线程开始
t1.start();
t2.start();
while(true){
try{
Thread1.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
t1.show(te1);
t2.remind(te2);
}
}
}
class Thread1 extends Thread{
int h,f,m;
public void show(JTextField t1){
Calendar cal=Calendar.getInstance();
//获取小时
h=cal.get(Calendar.HOUR_OF_DAY);
//获取分钟
f=cal.get(Calendar.MINUTE);
//获取秒数
m=cal.get(Calendar.SECOND);
//在文本域中显示系统的时间
t1.setText("时间:"+h+"时"+f+"分"+m+"秒");
}
}
class Thread2 extends Thread{
int h,f;//h为小时变量
public void remind(JTextField t2){
Calendar cal=Calendar.getInstance();
h=cal.get(Calendar.HOUR_OF_DAY);
if(h>=23 || h<7){
t2.setText("睡觉时间");
}else if(h>=7 && h<=18){
t2.setText("上课时间");
}
else{
t2.setText("自由活动");
}
}
}