La façon la plus simple de le faire est certainement d'utiliser un caractère d'échappement. Sur certaines plates-formes, certaines séquences d'échappement ne fonctionnent pas, et j'ai découvert que l'on peut ne peut pas utiliser simplement une barre oblique inversée comme touche d'échappement (comme String s = "\[36mbla-bla-bla";
. Au lieu de cela, vous devez utiliser le caractère d'échappement (27) pour passer d'un int à un char (i.e. String s = (char)27 + "[36mbla-bla-bla";
. si vous faites maintenant System.out.println(s);
vous verrez dans la console le texte cyan. Voir le tableau ci-dessous des valeurs ANSI possibles. Pour utiliser plusieurs valeurs, il suffit de les séparer par un point-virgule.
Tableau ANSI : wikipedia - Codes d'échappement ANSI
Pour une référence rapide :
- 30 noir
- 31 rouge
- 32 vert
- 33 jaune
- 34 bleu
- 35 magenta
- 36 cyan
- 37 blanc
- 40 fond noir
- 41 fond rouge
- 42 fond vert
- 43 fond jaune
- 44 fond bleu
- 45 fond magenta
- 46 fond cyan
- 47 fond blanc
Donc, System.out.println((char)27 + "[34;43mBlue text with yellow background");
vous donnera un texte bleu avec un fond jaune. ( [1m
J'ai remarqué qu'il augmente l'intensité - le rend plus lumineux - mais ne le rend pas plus gras).
Notez également (comme indiqué dans le tableau hypertexte ci-dessus) que de nombreuses séquences de changement d'attribut ne fonctionnent pas, mais que sur la plupart des plates-formes, les attributs de changement de couleur fonctionnent. Je vous recommande d'essayer ces différentes séquences d'échappement sur votre ordinateur mais veuillez noter qu'il ne sera pas possible de le transporter.