я могу остановить таймер, когда я в Таймер на JAVA - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть игровой метод с таймером внутри этого метода, только для определенного случая (если условие ниже), я хочу остановить таймер ... Но по какой-то причине он вызывает сбои.

public model() {
public game() {                    
            Timer timer = new Timer(50, new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    ....
                   //draw shapes on JFrame

                if (model.Life == 0) { //specific condition
                    model.timer.stop(); //timer is making a crash here
                }
                repaint();
                }
               });
            timer.start();
        }

1 Ответ

0 голосов
/ 08 декабря 2018

Таймер является источником ActionEvent, поэтому вы можете просто сделать:

if (your condition)
{
    Timer timer = (Timer)e.getSource();
    timer.stop();
}

Таким образом, вам не нужно беспокоиться о сохранении переменной экземпляра для Таймера.

...