Почему мой таймер Java не повторяет код вообще? - PullRequest
1 голос
/ 23 сентября 2019

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

Когда я помещаю что-то в метод public void actionPerformed(), это нене повторяйте вообще - он должен делать это каждую 10-ю миллисекунду, как я сказал.Я понятия не имею, что это может быть, потому что есть 0 предупреждений и 0 ошибок.

Вот код:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

public class timertest {

    static Timer timer = new Timer(10,new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("test");

        }
    });

    public static void main(String[] args) { 
        timer.start();
    }
}

1 Ответ

1 голос
/ 23 сентября 2019

Поскольку вы не запускаете его внутри Нити рассылки событий.

public class TimerTest {

    static Timer timer = new Timer(10, new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("test");

        }

    });

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> { //Run in EDT
            timer.start();
        });
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...