Índice del artículo
Si queremos cambiar el color de texto en java y que nuestro programa en java, con salida por consola, saque el texto en color por terminal, lo único que tenemos que hacer es añadir delante de cada salida por pantalla el código de color en el que quieras colorear el texto. Los códigos correspondientes a cada color, y cómo aplicarlo, se explica a continuación.
Códigos de colores para la consola o terminal en JAVA
Éstos son los códigos correspondientes a cada color:
Negro: \033[30m
Rojo: \033[31m
Verde: \033[32m
Amarillo: \033[33m
Azul: \033[34m
Magenta: \033[35m
Cyan: \033[36m
Blanco: \033[37m
Reset: \u001B[0m
Pero veamos como se haría con un ejemplo sencillo.
Si quiero el texto de color en mi programa en Java y quiero por ejemplo sacar el texto de color amarillo simplemente lo pongo así:
System.out.println("\033[33m Este texto saldrá en amarillo");
Para hacerlo un poco más fácil, se pueden crear unas variables con el nombre del color y el código de color y de esta forma concatenarlas a las cadenas que queremos colorear. por ejemplo así:
String black="\033[30m"; String red="\033[31m"; String green="\033[32m"; String yellow="\033[33m"; String blue="\033[34m"; String purple="\033[35m"; String cyan="\033[36m"; String white="\033[37m"; String reset="\u001B[0m";
De esta forma ahora sólo habría que concatenar el color que queremos con el texto que queremos sacar por pantalla. En Java sería así:
System.out.println(yellow+"Este texto saldrá en amarillo");
Consideraciones a tener en cuenta
Cuando aplicamos un color a la salida por consola, éste color se queda «grabado», es decir, que el resto de salida por consola, seguirá saliendo de color amarillo, incluso si termina el programa que estas ejecutando, por este motivo debes «borrar» el color que estás poniendo al final de cada salida de texto con un «reset» ya que de no hacerlo, todo lo que salga por pantalla te saldrá de ese color hasta que especifiques otro color de salida.
Para borrar un color y que vuelva al color anterior, debes hacerlo con el reset, ya que si se te ocurre en vez de hacerlo con un reset, hacerlo poniendo el color por defecto que tu tienes en tu terminal, otro usuario que tenga la terminal con colores diferentes podría no ver los mensajes. Lo explico mejor con un ejemplo:
Mi terminal es de fondo negro como se muestra a continuación:

después de los mensajes en amarillo quiero que se vuelva a mostrar en blanco, y en vez de poner un «reset» pongo un «white». Ésto funcionará en mi terminal, pero ¿que pasará cuándo otro usuario que tenga la terminal con fondo blanco ejecute el programa? Que el texto despues del texto amarillo, saldrá de color blanco y con el fondo blanco de su terminal no se verá. Sin embargo si lo hago con un «reset», el texto a continuación del coloreado volverá al color por defecto que tenga el terminal del usuario que ejecuta el programa.
Incorrecto:
System.out.println(red+IP+white+" dice: "+yellow+frase+white);
Se verá bien en mi terminal y en los terminales con fondo oscuro y no se verá bien en terminales con fondo claro
Correcto
System.out.println(red+IP+reset+" dice: "+yellow+frase+reset);
Se verá bien en todas las terminales.
Por último te pongo un ejemplo completo de un mini programa en java con los textos en colores:
import java.io.*; import java.io.*; import java.net.*; class Colores { public static void main(String args[]) throws Exception { String black="\033[30m"; String red="\033[31m"; String green="\033[32m"; String yellow="\033[33m"; String blue="\033[34m"; String purple="\033[35m"; String cyan="\033[36m"; String white="\033[37m"; String reset="\u001B[0m"; System.out.println(); System.out.println(red+"Cadena de texto en rojo"+reset); System.out.println(green+"Cadena de texto en verde"+reset); System.out.println(yellow+"Cadena de texto en amarillo"+reset); System.out.println(white+"Cadena de texto en white"+reset); System.out.println(black+"Cadena de texto en negro"+reset+" (<- cadena de texto en negro que no se ve porque mi fondo es negro)"+reset); System.out.println(blue+"Cadena de texto en azul"+reset); System.out.println(purple+"Cadena de texto en magenta"+reset); System.out.println(cyan+"Cadena de texto en cyan"+reset); System.out.println(reset+"Cadena de texto en color por defecto"+reset); System.out.println(); } }
Este programa debe de dar esta salida:

Si te ha gustado el artículo ¡compártelo!
0 comentarios