学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

请教关于Timer的问题

请教关于Timer的问题

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;

public class InnerClassTest{
    public static void main(String[] args){

             ActionListener taskPerformer = new ActionListener() {
                 public void actionPerformed(ActionEvent evt) {

                    Date now = new Date();
          System.out.println("At the tone,thi time is "+now);
          Toolkit.getDefaultToolkit();
                 }
             };
            new Timer(delay, taskPerformer).start();
            JOptionPane.showConfirmDialog(null,"Quit program?");
      System.exit(0);
      }
}
在上面程序中,为什么只有有“ JOptionPane.showConfirmDialog(null,"Quit program?"); ”这一句运行后才能打印时间?
能否改成直接在DOS里就打印出时间来,而不是像上面那样弹出个窗口后才能打印时间的。
谢谢

TOP

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;

public class InnerClassTest{
    public InnerClassTest()
    {
         ActionListener taskPerformer = new ActionListener() {
                 public void actionPerformed(ActionEvent evt) {
            System.out.println("www.it.com.cn 1");
                    Date now = new Date();
              System.out.println("At the tone,thi time is "+now);
                  //Toolkit.getDefaultToolkit();
                 }
             };
            Timer timer =  new Timer(1000, taskPerformer);
         
        timer.start();
       
            System.out.println("www.it.com.cn 2");
        try{
            Thread.sleep(5000); //选让主线程暂停一下,然后让Timer线程有机会注册及运行的ActionListener方法。
        }catch(Exception e)
        {
            System.out.println("error");
        }
    }
    public static void main(String[] args){

        new InnerClassTest();
      }
}

TOP

谢谢
另外,可能说明下原因吗

TOP

回复 3# 的帖子

使用Timer会另外开启一个线程,而主线程继续运行自己的。
Fight  to win  or  die...

TOP

发新话题