Как заставить Esc остановить метод

Хорошо, мне нужно заставить кнопку esc или любую кнопку остановить цикл. Я просмотрел все, но не могу найти ответ. Я знаю, что вы можете выйти из JFrame с помощью esc. а как насчет обычного метода? Любая помощь будет отличной, спасибо!

Может как то так?

    public class Stop {

    private static boolean loop = true;
    private static int x = 0;

    public static void main(String[] args) throws InterruptedException {

        while (loop == true){

            if (esc not pressed){
                x++;
                System.out.println(x);
            }
            else{
                loop = false;
            }

        }

    }

}

2 ответа

Решение

Вы не сможете поймать key pressed events из программы командной строки. Это необходимо сделать с помощью функций графического интерфейса пользователя (например, путем реализации KeyListener в Swing).

Это, кажется, подтверждает.

Консоль Java не предоставляет никаких методов для получения однократных нажатий клавиш. Вместо этого ввод считывается только после нажатия клавиши ввода (т. Е. Для приема символов).

Одним из решений является создание простого приложения Swing в стиле терминала. Таким образом, вы можете использовать KeyListener чтобы проверить наличие событий клавиатуры, или, как вы говорите, просто нажмите клавишу Esc, чтобы выйти JFrame,

В качестве альтернативы вы можете проверить библиотеку Java Curses, так как я считаю, что она предлагает реализацию для обнаружения определенных нажатий клавиш в консольных приложениях.

Другие вопросы по тегам