Как заставить 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, так как я считаю, что она предлагает реализацию для обнаружения определенных нажатий клавиш в консольных приложениях.