一个JAVA程序,第2次和N次运行都相同,但和第1次不同

classTimeTest{publicstaticvoidmain(String[]args){ActionListenerlistener=newTimePrinte... class TimeTest
{
public static void main(String[]args)
{
ActionListener listener = new TimePrinter();

Timer t = new Timer(10000,listener);
t.start();

JOptionPane.showMessageDialog(null,"quit pprogram?");
System.exit(0);
}
}
class TimePrinter implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Date now = new Date();
System.out.println("at the tone"+now);
Toolkit.getDefaultToolkit().beep();
}
}
第一次的时候按照程序原来的意思,10秒后跳出对话筐,但是第2次和以后,无论怎么执行,或者编译在执行,都是瞬间跳出对话筐,这个定时器不起作用了
展开
 我来答
穰力9x
2007-08-28 · TA获得超过196个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:537万
展开全部
定时器Timer启动后每次经过 delay 毫秒后,该 Timer 将激发一个其侦听器的操作事件,即执行listener里面的actionPerformed{}代码。默认情况下,调用 stop 方法之前此循环将重复进行。如果希望计时器只激发一次,则调用该计时器上的 setRepeats(false)。而在上面所写的代码中,程序执行t.start()之后紧接着就是跳出对话框的代码,这样的话对话框就会即刻跳出,如果要达到楼主所说的效果,把JOptionPane.showMessageDialog(null,"quit pprogram?"); 放到actionPerformed{}里面即可。当然后面得有个延迟主程序的代码,否则main将一下子执行到最后,直接结束,也就等不到timer计时器的触发事件了。(试试:源程序不变,仅仅在actionPerformed里面添加一行:JOptionPane.showMessageDialog(null,"timer!");)
百度网友0c3258b02
2007-08-28 · TA获得超过672个赞
知道小有建树答主
回答量:550
采纳率:0%
帮助的人:630万
展开全部
import javax.swing.JOptionPane;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.*;

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

final Timer t = new Timer();

t.schedule(new TimerTask(){
public void run(){
JOptionPane.showMessageDialog(null,"quit pprogram?");
Date now = new Date();
System.out.println("at the tone"+now);
Toolkit.getDefaultToolkit().beep();
System.exit(0);
}
},10000);

System.out.println("asdf");

//System.exit(0);
}
}
改成这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戊明轩0fR
2007-08-28 · TA获得超过605个赞
知道小有建树答主
回答量:1243
采纳率:0%
帮助的人:1028万
展开全部
因为第一次是编译,第二次是运行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式