Ich schreibe ein wirklich einfaches Programm, aber ich habe ein Problem festgestellt. Im Folgenden ist ein Stück meines Codes (es ist ein wirklich dummes Programm ist, versuchen Sie nicht zu erraten, was ich verwende es für.)Benutzereingaben deaktivieren, bis Thread.sleep() beendet
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.");
Was wäre hier geschehen ist, dass das Programm den Benutzer auffordert, zu Drücken Sie die Return-Taste 1000 mal, wodurch der Benutzer schließlich mit dem Spammen beginnen würde. Das Hauptproblem ist, dass, nachdem ich erklärt habe, dass es ein Scherz war und er es nur 25 Mal drücken musste, ich die Benutzereingabe deaktivieren möchte, da es wahrscheinlich ist, dass der Benutzer den Knopf mehrmals drückt, bevor er merkt, dass ich es war nur scherzen. Aber wenn die thread.sleep ausgeführt wird, ist die Benutzereingabe immer noch aktiv, was zu mehreren Problemen führt.
Gibt es also eine Möglichkeit, die Benutzereingabe zu deaktivieren, während das Programm schläft?
Warum interessieren Sie sich? Liegt es daran, dass das Programm später etwas anderes von "Input" liest? Wenn "Eingabe" die Konsole ist, kann es "schwierig" sein, sie zu deaktivieren. Vielleicht wäre eine bessere Lösung, die zusätzlichen Leerzeilen zu lesen und zu ignorieren, wenn das Programm das nächste Mal wünscht, dass der Benutzer etwas eingibt. –