Użyj javax.swing.Timer, aby ustawić minutnik w Javie [duplikat]

Możliwy duplikat:
Zatrzymaj timer z warunkowym działa tylko za pierwszym razem?

Jestem bardzo zdezorientowany, jak zrobić timer za pomocą huśtawki, a nie timera.

Tworzę grę, w której użytkownicy muszą odpowiadać na pytania w 30 sekundowym terminie. Mam PlayFrame, gdzie pokazywany jest czas, oraz metodę wewnątrz PlayFrame o nazwie startTimer, która zawiera wszystkie elementy timera.

public static void startTimer() {

    int elapsedSeconds = 0;
    javax.swing.Timer myTimer = new javax.swing.Timer(1000, new MyTimerActionListener());
    elapsedSeconds++;

    if (elapsedSeconds == 30) {
        myTimer.stop();
        timerLabel.setText("0");
        wrong();
    } else {
        String text = String.format("f", 30 - elapsedSeconds);
        timerLabel.setText(text);
    }

    if (myTimer != null && myTimer.isRunning()) {
        myTimer.stop();
        myTimer = null;
        timerLabel.setText("0");
    } else {
        elapsedSeconds = 0;
        myTimer = new javax.swing.Timer(1000, new MyTimerActionListener());
        myTimer.start();
        String text = String.format("t", 30);
        timerLabel.setText(text);
    }
}

Chcę, aby ta metoda miała czasomierz, który odlicza od 30 do momentu prawidłowego odpowiedzi na pytanie. Jeśli odpowiedź jest nieprawidłowa, chcę, aby stoper się zatrzymał.

Aby uzyskać odpowiedź, może jakiś psuedokod (lub prawdziwy kod), aby przenieść mnie we właściwym kierunku. I to do użytku osobistego, a nie do prac domowych lub czegokolwiek.

Pamiętaj, że jest to część mojego całego kodu i musi działać z innymi jego częściami. Podam więcej informacji na życzenie, dzięki!

EDYCJA: Nowa metoda startTimer ()UWAGA all System.out.print służy wyłącznie do testowania:

  public static void startTimer() {
    class TimerListener implements ActionListener {
        Timer timer = new Timer(1000, new TimerListener());
        int elapsedSeconds = 30;
        String seconds = Integer.toString(elapsedSeconds);

        @Override
        public void actionPerformed(ActionEvent evt) {
            timer.start();
            if (elapsedSeconds == 0) {
                //System.out.print("here");
                timer.stop();
                PlayFrame.wrong();
            }
            else{
                //System.out.print("hersfde");
                elapsedSeconds--;
            PlayFrame.timerLabel.setText(seconds);
            }
            //System.out.println(elapsedSeconds);
        }
    }
    //System.out.print("l");
}

Nic nie robi i nie wiem dlaczego.

questionAnswers(1)

yourAnswerToTheQuestion