事件监听器不能调用ActionListener

仓狼 发布于 2012/03/29 14:05
阅读 204
收藏 0

public class TalkingClock {
 private int interval;
 private boolean bean;
 //类的构造函数
 public TalkingClock(int interval,boolean bean){
  this.interval=interval;
  this.bean=bean;
 }
 //start 方法
 public void start(){
  //首先 我要实例化这个类
  ActionListener listener=new TimePrinter();
     Timer timer=new Timer(interval,listener);
     timer.start();
  
 }
 //只有内部类才有私有属性 其他的类只有包可见(protect)和公共可见(public)
 private class TimePrinter implements ActionListener{
  public void actionPerformed(ActionEvent event){
   Date now=new Date();
   System.out.println("At zhe tone,the time is"+now); 
   if(bean)
    Toolkit.getDefaultToolkit().beep();
  }  
 }

}
 //

public class TestApplication {

 /**
  * @param args
  */
 public static void main(String[] args) {
  TalkingClock tclock=new TalkingClock(1000,true);
  tclock.start();

 }

}

加载中
0
Monkey
Monkey
你用的是swing timer,这个是在swing事件线程上跑的,没有swing程序起来的时候这个定时器无法运行。 new JFrame().setVisible(true);
        TalkingClock tclock = new TalkingClock(1000, true);
        tclock.start();
改成这样就可以了。
返回顶部
顶部