线程设计

一、源代码

package xixi;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Time extends JFrame{
    JButton j1;
         JLabel l1;
    
         public Time()
     {
         j1=new JButton("奥运会倒计时");
         j1.setFont(new Font("宋体",1,15));
         j1.addActionListener(new ActionListener()
     {
             @Override
         public void actionPerformed(ActionEvent arg0)
         {
         //dispose();//关闭当前窗口
             new Time();//新建一个窗口
         }
    
         });
         //匿名创建一个线程类Thread来实现时间倒计时
         l1=new JLabel();
         Thread tr1= new Thread() //匿名创建,毋须实例对象
         {
         public void run()  //线程运行方法,实现Runnable()接口
         {
           int day=100;//100天倒计时
           int hour,min,second;
         while(day>=0)
         {
           if(day==0)
             day=0;
           else --day;
           hour=24;
            while(hour>=0)
             {
              if(hour==0)
                     hour=0;
              else --hour;
              min=60;
               while(min>=0)
               {
                 if(min==0)
                     min=0;
                 else
                     min--;
                 second=60;
                   while(second>0)
                    {
                      second--;
                      if(day+min+hour+second==0)
                             second=0;
                      if(day==0&&hour==0&&min<3)
                        {
                          //当时间只剩3min时闪红
                         l1.setForeground(Color.YELLOW);//黄色背景
                          }
                      l1.setFont(new Font("黑体",2,15));//黑体、斜体、字号
                      l1.setText(day+"天"+hour+"小时"+min+"分钟"+second+"秒");
                       try
                         {
                           Thread.sleep(1000);//线程睡眠,单位毫秒 1s=1000ms
                           }
                         catch (InterruptedException e)
                         {
                         e.printStackTrace();
                           }
                             }
                          }
                     }
                 }
             }
         };
         this.setTitle("奥运会100Days倒计时");
         this.setSize(500, 240);//长、宽
         this.add(j1,BorderLayout.NORTH);//边界布局 北 即上
         this.add(l1,BorderLayout.CENTER);//中间
         tr1.start();//线程开始启动
         this.setResizable(true);
         this.setVisible(true);
           this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
      new Time();
    }

二、实验结果

线程设计

 

三、实验心得

 在线程设计方面不是很理解,在同学的帮助下完成

上一篇:【转载】 MySQL之用户资源限制


下一篇:字符串连接符