Я пишу действительно базовую программу, но у меня возникла проблема. Ниже приведен фрагмент моего кода (это действительно глупо программы, не пытайтесь угадать, что я использую его для.)Отключить ввод пользователя до тех пор, пока Thread.sleep() не закончит
System.out.println("Please press the Return button a 1000 times.");
for(int i = 1;i < 25;i++) {
input.nextLine();
}
System.out.println("Stop! Stop! Jeez, that was a joke! Do you think I'd make you press that button a 1000 times?");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {}
System.out.println("Let's move on.");
Что произошло бы в том, что программа запрашивает у пользователя нажмите кнопку «Возврат» в 1000 раз, и пользователь в конечном итоге начнет спам. Основная проблема заключается в том, что после того, как я заявляю, что это была шутка, и ему нужно было только 25 раз нажать ее, я бы хотел отключить ввод пользователя, так как, скорее всего, пользователь несколько раз нажимает кнопку, прежде чем осознать, что я просто шутка. Но когда выполняется thread.sleep, пользовательский ввод все еще активен, что приводит к множеству проблем.
Итак, есть ли способ отключить ввод пользователя во время сна?
Почему вы заботитесь? Это потому, что программа собирается читать что-то еще из 'input' позже? Если 'input' является консолью, тогда« отключение »может быть сложным. Возможно, лучшим решением будет чтение и игнорирование лишних пустых строк в следующий раз, когда ваша программа хочет, чтобы пользователь набирал что-то. –