import javax.swing.*;
import javax.swing.Timer;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
public class TimerTest {
public static void main(String[] args)
{
ActionListener listener=new TimePrint();
Timer time=new Timer(2000,listener);
time.start();
JOptionPane.showMessageDialog(null,"quit program!");
System.exit(0);
}}
class TimePrint implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Date date=new Date();
System.out.println("the time is:"+date);
Toolkit.getDefaultToolkit().beep();
}
}上面的程序我吧system.exit(0)删除了之后仍然可以退出程序,这是问什么呀,是不是可以不写啊!要不然就是有种推出方式,这两种有什么不同吗?
import javax.swing.Timer;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
public class TimerTest {
public static void main(String[] args)
{
ActionListener listener=new TimePrint();
Timer time=new Timer(2000,listener);
time.start();
JOptionPane.showMessageDialog(null,"quit program!");
System.exit(0);
}}
class TimePrint implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Date date=new Date();
System.out.println("the time is:"+date);
Toolkit.getDefaultToolkit().beep();
}
}上面的程序我吧system.exit(0)删除了之后仍然可以退出程序,这是问什么呀,是不是可以不写啊!要不然就是有种推出方式,这两种有什么不同吗?
解决方案 »
- JAVA异常的一个菜鸟问题............
- 如何linux下使用java获取word的批注
- 文思创新的笔试题?????将包含数字1-49个integer对象填入一个数组列表,然后对列表中的元素随机混排,并且从混排后的列表中选择开头的6个值打印出来
- 此程序为何无法将属性文件导出
- 一个线程同步问题
- 关于Frame的windowsListener原理的疑问
- 为什么我的jdbc程序只能访问 type 为 system 的表 在线等啊
- 一个的Appending to String Within a Loop错误
- jbuilder->exe文件的问题
- !!求救,请问使用MySQL数据库能否使用连接池技术
- 老问题,最小化到托盘!
- sql+jtextfield 查询的实现?
如果不加这句话,也没有问题,只是你程序是退出来了,可程序占用的内存并没有马上完全的释放掉
表示正常终止jvmJOptionPane.showMessageDialog(null,"quit program!");
起到了一个线程阻塞的作用
如果没有此句 main线程终止 Timer子线程也随之终止