java定时显示问题

[复制链接]
查看11 | 回复4 | 2011-8-26 07:34:04 | 显示全部楼层 |阅读模式
要求点击出来的确定后10秒屏幕上显示第一条定时消息可是最后显示不出来importjava.awt.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.*;importjavax.swing.Timer;//toresolveconflictwithjava.util.Timerpublicclasslz6_3{publicstaticvoidmain(String[]args){ActionListenerlistener=newTimePrinter();//constructatimerthatcallsthelistener//onceevery10secondsTimert=newTimer(10000,listener);t.start();JOptionPane.showMessageDialog(null,\"Quitprogram?\");System.exit(0);}}classTimePrinterimplementsActionListener{publicvoidactionPerformed(ActionEventevent){Datenow=newDate();System.out.println(\"Atthetone,thistimeis\"now);Toolkit.getDefaultToolkit().beep();}}
回复

使用道具 举报

千问 | 2011-8-26 07:34:04 | 显示全部楼层
你的程序主线程和子线程都结束了,所以不会显示,如果你不点击确定,那么每隔十秒就会显示一次时间,如果你点击了确定,整个程序会结束。所以你一定要程序在十秒之后结束,这样计时器才有时间调用动作函数,输出时间。
回复

使用道具 举报

千问 | 2011-8-26 07:34:04 | 显示全部楼层
在System.exit(0);前面加try{Thread.sleep(15000);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}就可以实现。这个代码如下:packagetest;importjava.awt.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.*;importjavax.swing.Timer;//toresolveconflictwithjava.util.TimerpublicclassTest{publicstaticvoidmain(String[]args){ActionListenerlistener=newTimePrinter();Timert=newTimer(10000,listener);t.start();JOptionPane.showMessageDialog(null,\"Quitprogram?\");try{Thread.sleep(15000);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}System.exit(0);}}classTimePrinterimplementsActionListener{publicvoidactionPerformed(ActionEventevent){Datenow=newDate();System.out.println(\"Atthetone,thistimeis\"now);Toolkit.getDefaultToolkit().beep();}}
回复

使用道具 举报

千问 | 2011-8-26 07:34:04 | 显示全部楼层
做任务的飘过!!!!
回复

使用道具 举报

千问 | 2011-8-26 07:34:04 | 显示全部楼层
你可以把定时时间改为1秒看看,应该是没错的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行