java的多线程(一)

     编写一个图形界面程序,运行之后,让其中有一个线程能在界面上“实时” 显示系统当前时间(精确到秒获取时间可查询 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("自由活动");
       }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值