Остановка Java часов

1
new Timer(1000, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        timeout--;
        if(timeout>=1){
            status1.setText("Time out: " + timeout);
        }else{
            patient1.setText("Patient: ");
            status1.setText("Status: Available");
            doctor.get(0).setStatus(true);
            countDoc++;
            setDoc.setText(avDoc + countDoc);
            timeout = 24;
        }
    }
}).start();

Как остановить эту часть таймера в конце инструкции else? Я действительно поцарапал себе голову и обыскал почти всюду

Теги:
timer
swing

2 ответа

4
Лучший ответ

Если вы пытаетесь остановить таймер из своего ActionListener, вы можете получить ссылку на объект Timer из метода getSource(), а затем остановить его, вызвав stop() в ссылке:

((timer) e.getSource()).stop();

или сломать его:

// assuming an ActionEvent variable named e
Timer timer = (Timer) e.getSource();
timer.stop();

и в контексте:

public void actionPerformed(ActionEvent e) {
    timeout--;
    if(timeout>=1){
        status1.setText("Time out: " + timeout);
    }else{
        patient1.setText("Patient: ");
        status1.setText("Status: Available");
        doctor.get(0).setStatus(true);
        countDoc++;
        setDoc.setText(avDoc + countDoc);
        timeout = 24;

        ((timer) e.getSource()).stop();
    }
}
  • 0
    Я получил это работает сейчас, но другой вопрос. Таймер таймер = (Таймер) e.getSource (); Что делает Таймер в скобках?
  • 0
    @ user3083413: Я рад, что у вас это работает. Что вы подразумеваете под "скобкой"? Вы имеете в виду утверждение (Timer) ? Это приведение, которое требуется, так как getSource() объявлен как возвращающий Object.
Показать ещё 2 комментария
0

сначала определите таймер так:

Timer tim = new Timer(......)

tim.start();
tim.stop();

это позволит вам останавливать таймер в любом месте (при условии, что вы сделаете его глобальным)

вы также можете легко изменить его атрибуты, если привязать его к var, а не создать такой объект.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню