日期:2014-05-20  浏览次数:20720 次

缺少JOptionPane.showMessageDialog主线程退出问题
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

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

public class TestAnonymousClass {
  public static void main(String[] args){
TalkingClock clock = new TalkingClock();
clock.start(1000,true);
JOptionPane.showMessageDialog(null,"Quit program?");
System.exit(0);
  }
}

class TalkingClock{
public void start(int interval,final boolean beep){
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent event){
Date now = new Date();
System.out.println("At the tone,the time is"+now);
if(beep)Toolkit.getDefaultToolkit().beep();
}
};
Timer t = new Timer(interval,listener);
t.start();

}
}
为什么缺了这两句话,线程推出了 希望高手能帮我看下这个问题啊 最好讲明白点 谢谢

------解决方案--------------------
这是JDialog,应该说所有Dialog的特点。当你的Dialog设置该项功能的时候,在你退出那个Dialog界面的之前,在该程序上是无法做任何与该Dialog无关的任何事情。就像你点击浏览器的叉叉退出的时候,它弹出一个Dialog提示你是否退出,那时候你点击浏览器的的任何地方都没用的。而JOptionPane.showMessageDialog就是一个Dialog.