import java.awt.event.ActionEvent;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
import javax.swing.*;
import javax.swing.Timer;public class Test1 {
  public static void main(String[] args){
    ActionListener li = new TimePrinter();
    javax.swing.Timer t = new javax.swing.Timer(1000,li);
    t.start();
    //JOptionPane.showMessageDialog(null,"Quit program?"); ---------->加上注释就无法执行println语句,去掉注释就可以了,这是为什么?
    //System.exit(0);  }
}class TimePrinter implements ActionListener{
  public void  actionPerformed(ActionEvent event){
    java.util.Date now = new  java.util.Date();
    System.out.println("at the tone"+now);
    Toolkit.getDefaultToolkit().beep();
  }
}

解决方案 »

  1.   

    加上注释timer还没start程序就结束了,当然无法println
    不加注释,显示了一个Modal窗口, 点确定后才退出
      

  2.   

    ^_^ . System.exit() ,退出了. 还用得着 println.
      

  3.   

    这样就不会有你说的情况了import java.util.Timer;
    import java.util.TimerTask;class myTimeTask extends TimerTask
    {    /* (非 Javadoc)
         * @see java.util.TimerTask#run()
         */
        public void run()
        {
            // TODO 自动生成方法存根
            java.util.Date now = new java.util.Date();
            System.out.println("myTimeTask"+now);
            
        }
        
    }
    public class Test1b
    {    public static void main(String[] args)
        {
            myTimeTask mtt=new myTimeTask();
            
            Timer t=new Timer();
            t.schedule(mtt,1000,1000);
            
        }
    }