The First Blog

        终于能发表博客了!记录一下自己的学习历程,或许以后再来看这些代码是幼稚的,但却见证了我的成长!

        好吧!转入正题,这一周主要复习了多线程,其他的像awt,集合只是简略地看了看,主要是一开始多线程就没理解透彻。

        下面是用线程模拟一个计时器并显示在Frame中的代码:

 import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
import java.util.*;
public class TimeRecorder
{
 public static void main(String[] args)
 {
  new RecordTimer("简单的计时器");
 }

    class RecordTimer extends Frame
    {
     Timer time=new Timer(1000,new Recorder());
     Button b1=new Button("开始计时");
     Button b2=new Button("暂停计时");
     Button b3=new Button("继续计时");
        TextField text=new TextField(30);
        Label l=new Label("计时器");
     RecordTimer(String s)
     {         
      add(b1);
      add(b2);
      add(b3);
      add(l);
      add(text);
      setLayout(new FlowLayout());
      b1.addActionListener(new Start());
      b2.addActionListener(new Suspend());
      b3.addActionListener(new Continue());
      setBounds(100,100,300,100);
      setBackground(Color.pink);
      setVisible(true);
      setResizable(false);
      addWindowListener(new WindowAdapter()
      {
       public void windowClosing(WindowEvent e)
                  {
                  System.exit(0);
                  }                
      });
     }
     class Recorder implements ActionListener//可以把以下四个类合并为一个方法写在RecordTimer中,此处这样写是为了练习类之间的相互联系。
     {
     public void actionPerformed(ActionEvent e)
     {
      Date date=new Date();
      String str=date.toString();
      text.setText(str);
     }    
     }
    class Start implements ActionListener
    {
     public void actionPerformed(ActionEvent e)
     {
      time.start(); 
     }
    }
    class Suspend implements ActionListener
    {
     public void actionPerformed(ActionEvent e)
        {
         time.stop(); 
        }   
    }
    class Continue implements ActionListener
    {
         public void actionPerformed(ActionEvent e)
         {
          time.restart();
         }
    } 
}

效果图:

 

不足之处:本来想实现的功能是让计时器从零开始计时,暂停一段时间后,继续上次的计时。很显然现在这个计时器有点像时钟了,即使暂停一段时间了,可计时器并没有停下来,依旧在工作,只是在暂停期间TextField中不计时了而已。好吧,仍需改进啊!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值