Java 拍摄对象后,如何停止计时器功能?
我正在做一个简单的射击游戏。我有一个倒计时内的标签和一个对象,闪烁在面板内的随机位置。每次单击对象时,。对象的计时器停止,这使得该对象也停止,但倒计时计时器不停止,这是我的问题。我想倒计时也应该停止 有人能帮我处理这件事吗 代码如下:Java 拍摄对象后,如何停止计时器功能?,java,swing,timer,Java,Swing,Timer,我正在做一个简单的射击游戏。我有一个倒计时内的标签和一个对象,闪烁在面板内的随机位置。每次单击对象时,。对象的计时器停止,这使得该对象也停止,但倒计时计时器不停止,这是我的问题。我想倒计时也应该停止 有人能帮我处理这件事吗 代码如下: private void starting() { new Timer(TIMER_PERIOD, new ActionListener() { @Override public void actionPerfo
private void starting()
{
new Timer(TIMER_PERIOD, new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if (count++ < MAX_COUNT)
{
String text = "Time remaining: (" + (MAX_COUNT - count) + ") seconds left";
setCountDownLabelText(text);
Date date = new Date();
setCountDownPanelText(date);
}
else
{
((Timer) e.getSource()).stop();
randomTimer.stop();
JOptionPane.showMessageDialog(null, "Game Over");
System.exit(0);
}
}
}).start();
}
private void start()
{
新计时器(计时器周期,新ActionListener()
{
@凌驾
已执行的公共无效操作(操作事件e)
{
如果(计数+<最大计数)
{
String text=“剩余时间:(“+(最大计数-计数)+”)剩余秒数”;
setCountDownLabelText(文本);
日期=新日期();
setCountDownPanelText(日期);
}
其他的
{
((计时器)e.getSource()).stop();
randomTimer.stop();
showMessageDialog(null,“游戏结束”);
系统出口(0);
}
}
}).start();
}
我觉得您根本不理解代码,您不知道创建的匿名类正在扩展,该类(如果您看过文档)有一个函数stop()
,它可以满足您的要求
您需要存储对计时器的引用
private javax.swing.Timer timer;
private void starting() {
timer = new Timer(TIMER_PERIOD, new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
// do stuff
// stop the timer
timer.stop();
// do other stuff
}
}
}
我觉得您根本不理解代码,您不知道创建的匿名类正在扩展,该类(如果您看过文档的话)有一个函数
stop()
,它可以满足您的要求
您需要存储对计时器的引用
private javax.swing.Timer timer;
private void starting() {
timer = new Timer(TIMER_PERIOD, new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
// do stuff
// stop the timer
timer.stop();
// do other stuff
}
}
}
请提供一个展示您描述的问题的。请提供一个展示您描述的问题的。-1用于混合单独的类a)在Swing中使用的计时器是Swing包中的计时器(而不是util中的计时器)b)util。Timer的方法为cancel,但是没有构造函数使用ActionListener c)swing.Timer没有方法cancel,只有方法stop。@Charles Goodwin请将1)java.util.Timer更改为javax.swing.Timer,2)Timer.stop(),3)链接到今天的Java6或7。要更方便地定位最新的JavaDocs,请参阅。我已经得到了它。kleopatra&Korbel所说的绝对正确,但无论如何,感谢你们的帮助。“分享就是关心”;-)答案是?你是怎么修好的P-1用于混合单独的类a)Swing中使用的计时器是Swing包中的计时器(而不是util中的计时器)b)util.Timer具有方法cancel,但没有构造函数执行ActionListener c)Swing.Timer没有方法cancel,只有方法stop。@Charles Goodwin请将1)java.util.Timer更改为javax.Swing.Timer,2)timer.stop(),3)链接到今天的Java6或API7要更容易地找到最新的JavaDocs,请参阅。我已经得到了它。kleopatra&Korbel所说的绝对正确,但无论如何,感谢你们的帮助。“分享就是关心”;-)答案是?你是怎么修好的P