计时器线程Timer

 

Java的1.2版本后提供了一个很方便的Timer类,该类在javax.swing包中。当某些操作需要周期性的执行,就可以使用计时器。可以使用的构造方法:Timer(int a,Object b)创建一个计时器,七种的参数a的单位是毫秒,确定计时器每隔a毫秒“振铃”一次,参数b是计时器的监视器。计时器发生的振铃事件是ActionListener中的方法actionPerformed.因此,当振铃每隔a毫秒发生一次时,方法actionPerformed就被执行一次。当想让计时器只振铃一次时,可以让计时器调用setReapeats(boolean b)方法,参数b的取值false即可。当使用Timer(int a,Object b)创建计时器,对象b就自动地成了计时器的监视器,不必像其他组建(如:按钮)那样,使用特定方法获得监视器,但负责创建监视器的类必须实现接口Actionlistener.如果使用Timer(int a)创建计时器,计时器必须再明显的调用addActionListener(ActionListener listener)方法获得监视器,另外,计时器也可以调用setInitialDelay(int depay)设置首次振铃的延时,如果没有使用该方法进行设置,首次振铃的延时为a。

  计时器创建后,使用Timer类的方法start()启动计时器即启动线程。使用Timer类的方法stop()停止计时器,即挂起线程。使用restart()重新启动计时器,即回复线程。下面一个例子:单击“开始”,按钮启动计时器,并将时间显示在文本框中,同时移动文本框在容器中的位置;单击“暂停”按钮计时器暂时停止计时;单击“继续”按钮重新启动计时器。

 

 

import java.awt.*;

import java.awt.event.*;

import javax.swing.Timer;

public class Example

{

 public static void main(String[] args)

{

   TimeWi Win=new TimeWin();

}

}

class TimeWin extends Frame inplements ActionListener

{

TextField text;

Button bStart,bStop,bContinue;

Timer time;

int =0,start=1;

TimeWin()

{

time=new Timer(1000,this);

text=new Field(10);

bStart=new Button("开始计时");

bStop==new Button("暂停计时");

bContinue=new Button("继续计时");

bStart.addActionListener(this);

bStop.addActionListener(this);

bContinue.addActionListener(this);

setLayout(new FlowLayout());

add(bStart);

add(bStop);

add(bContinue);

add(text);

setSize(500,500);

validate();

setVisible(true);

addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

 {System.exit(0);

}

}

);

}

 

public void actionPerformed(ActionEvent e)

{

 if(e.getSource()==time)

{

 java.util.Date date=new java.util.Date();

String str=date.toString().sustring(11,19);

text.setText("时间:"+str);

int x=text.getBounds().x;

int y=text.getBounds().y;

y=y+2;

text.setLocation(x,y);

}

else if(e.getSource()==bStart)

{

 time.start();

}

else if(e.getSource()==bStop)

{

 time.stop();

}

else if(e.getSource()==bContinue)

{

time.restart();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值