import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
public class TimerTest
{
public static void main(String[] args)
{
javax.swing.Timer mytimer=new javax.swing.Timer(1000,new ActionListener(){ public void actionPerformed(ActionEvent e)
{
Date now=new Date();
System.out.println(now);
Toolkit.getDefaultToolkit().beep();
}

});
mytimer.start();
System.out.println(" a");
}
}
这个例子我直接运行不见打印时间,用调试能打印时间,但beep()好像没声

解决方案 »

  1.   

    因为mytimer还没起作用时main线程先结束了,也就没法执行代码了,在swing中frame不会结束,就没问题了
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Date;
    public class TimerTest
    {
    public static void main(String[] args)
    {
    javax.swing.Timer mytimer=new javax.swing.Timer(1000,new ActionListener(){public void actionPerformed(ActionEvent e)
    {
    Date now=new Date();
    System.out.println(now);
    Toolkit.getDefaultToolkit().beep();
    }});
    mytimer.start();
    try{(new Thread()).sleep(10000);}catch(Exception e){e.printStackTrace();}//坚持10秒钟
    System.out.println(" a");
    }
    }