2016-04-23 10 views
0

Ich führe eine Konsolenanwendung in Netbeans aus, die eine Benutzereingabe anfordert, die Eingabe überprüft und eine Fehlermeldung ausgibt, wenn die Eingabe die Validierung nicht bestanden hat und erneut angezeigt wird. Die Fehlermeldung, die ich eingerichtet habe, um in rotem Text pro this answer zu drucken. Es funktioniert perfekt, speichern Sie ein Problem.Einstellen der Farbe des Benutzereingabetextes nach dem Drucken einer ANSI-farbigen Nachricht?

Nachdem das Programm nach einer zweiten Eingabe gefragt hat, weil die erste Eingabe ungültig war, haben Benutzereingaben, die dieser Fehlermeldung folgen, die gleiche Farbe wie die Fehlermeldung.

Zum Beispiel hat der Benutzer eine ungültige Eingabe eingegeben. Sie geben ihre Eingabe nach der Fehlermeldung erneut ein. Es sollte in der Standardtextfarbe (schwarz in meiner Version) gedruckt werden, aber es wird stattdessen als roter Text gedruckt.

Gibt es eine Möglichkeit, in dem sollte mich die Anwendung des ANSI-Farbcode auf meinem Text schließen? Eine Art End-Tag?

Code:

public static void main(String[] args) 
{ 

    //Initialize keyboard input 
    Scanner keyboard = new Scanner(System.in); 

    //Print prompt to screen 
    System.out.println("User input prompt goes here: "); 

    //Store user input 
    String inputGot = keyboard.nextLine(); 

    //Print a dummy error message 
    System.out.println("\u001B[31m" + "This is an error of some sort. " 
      + "Please re-enter input: "); 

    //Rerun input prompt (this would be looped in the real program) 
    System.out.println("User input prompt goes here: "); 

    //Store user input 
    inputGot = keyboard.nextLine(); 
} 

Antwort