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