How to print color in console using System.out.println?
Как напечатать цвет в консоли с помощью System.out.println?
Как я могу напечатать цвет в консоли? Я хочу отображать данные в цветах, когда процессор отправляет данные, и в разных цветах, когда он получает данные.
Переведено автоматически
Ответ 1
Если ваш терминал поддерживает это, вы можете использовать управляющие коды ANSI, чтобы использовать color в своих выходных данных. Обычно это работает для подсказок командной строки Unix; однако это не работает для командной строки Windows (хотя это работает для Cygwin). Например, вы могли бы определить константы, подобные этим, для цветов:
Затем вы могли бы ссылаться на них по мере необходимости.
Например, используя приведенные выше константы, вы могли бы вывести следующий красный текст на поддерживаемых терминалах:
System.out.println(ANSI_RED + "This text is red!" + ANSI_RESET);
Обновление: Возможно, вы захотите ознакомиться с библиотекой Jansi. Она предоставляет API и поддерживает Windows с использованием JNI. Я еще не пробовал, однако это выглядит многообещающе.
Обновление 2: Кроме того, если вы хотите изменить цвет фона текста на другой цвет, вы также можете попробовать следующее:
System.out.println(ANSI_GREEN_BACKGROUND + "This text has a green background but default text!" + ANSI_RESET); System.out.println(ANSI_RED + "This text has red text but a default background!" + ANSI_RESET); System.out.println(ANSI_GREEN_BACKGROUND + ANSI_RED + "This text has a green background and red text!" + ANSI_RESET);
Ответ 2
Вот список цветов в классе Java с public static полями
Примечание Не забудьте использовать RESET после печати, так как эффект останется, если его не убрать
publicclassConsoleColors { // Reset publicstaticfinalStringRESET="\033[0m"; // Text Reset
// Regular Colors publicstaticfinalStringBLACK="\033[0;30m"; // BLACK publicstaticfinalStringRED="\033[0;31m"; // RED publicstaticfinalStringGREEN="\033[0;32m"; // GREEN publicstaticfinalStringYELLOW="\033[0;33m"; // YELLOW publicstaticfinalStringBLUE="\033[0;34m"; // BLUE publicstaticfinalStringPURPLE="\033[0;35m"; // PURPLE publicstaticfinalStringCYAN="\033[0;36m"; // CYAN publicstaticfinalStringWHITE="\033[0;37m"; // WHITE
// Bold publicstaticfinalStringBLACK_BOLD="\033[1;30m"; // BLACK publicstaticfinalStringRED_BOLD="\033[1;31m"; // RED publicstaticfinalStringGREEN_BOLD="\033[1;32m"; // GREEN publicstaticfinalStringYELLOW_BOLD="\033[1;33m"; // YELLOW publicstaticfinalStringBLUE_BOLD="\033[1;34m"; // BLUE publicstaticfinalStringPURPLE_BOLD="\033[1;35m"; // PURPLE publicstaticfinalStringCYAN_BOLD="\033[1;36m"; // CYAN publicstaticfinalStringWHITE_BOLD="\033[1;37m"; // WHITE
// Underline publicstaticfinalStringBLACK_UNDERLINED="\033[4;30m"; // BLACK publicstaticfinalStringRED_UNDERLINED="\033[4;31m"; // RED publicstaticfinalStringGREEN_UNDERLINED="\033[4;32m"; // GREEN publicstaticfinalStringYELLOW_UNDERLINED="\033[4;33m"; // YELLOW publicstaticfinalStringBLUE_UNDERLINED="\033[4;34m"; // BLUE publicstaticfinalStringPURPLE_UNDERLINED="\033[4;35m"; // PURPLE publicstaticfinalStringCYAN_UNDERLINED="\033[4;36m"; // CYAN publicstaticfinalStringWHITE_UNDERLINED="\033[4;37m"; // WHITE
// Background publicstaticfinalStringBLACK_BACKGROUND="\033[40m"; // BLACK publicstaticfinalStringRED_BACKGROUND="\033[41m"; // RED publicstaticfinalStringGREEN_BACKGROUND="\033[42m"; // GREEN publicstaticfinalStringYELLOW_BACKGROUND="\033[43m"; // YELLOW publicstaticfinalStringBLUE_BACKGROUND="\033[44m"; // BLUE publicstaticfinalStringPURPLE_BACKGROUND="\033[45m"; // PURPLE publicstaticfinalStringCYAN_BACKGROUND="\033[46m"; // CYAN publicstaticfinalStringWHITE_BACKGROUND="\033[47m"; // WHITE
// High Intensity publicstaticfinalStringBLACK_BRIGHT="\033[0;90m"; // BLACK publicstaticfinalStringRED_BRIGHT="\033[0;91m"; // RED publicstaticfinalStringGREEN_BRIGHT="\033[0;92m"; // GREEN publicstaticfinalStringYELLOW_BRIGHT="\033[0;93m"; // YELLOW publicstaticfinalStringBLUE_BRIGHT="\033[0;94m"; // BLUE publicstaticfinalStringPURPLE_BRIGHT="\033[0;95m"; // PURPLE publicstaticfinalStringCYAN_BRIGHT="\033[0;96m"; // CYAN publicstaticfinalStringWHITE_BRIGHT="\033[0;97m"; // WHITE
// Bold High Intensity publicstaticfinalStringBLACK_BOLD_BRIGHT="\033[1;90m"; // BLACK publicstaticfinalStringRED_BOLD_BRIGHT="\033[1;91m"; // RED publicstaticfinalStringGREEN_BOLD_BRIGHT="\033[1;92m"; // GREEN publicstaticfinalStringYELLOW_BOLD_BRIGHT="\033[1;93m";// YELLOW publicstaticfinalStringBLUE_BOLD_BRIGHT="\033[1;94m"; // BLUE publicstaticfinalStringPURPLE_BOLD_BRIGHT="\033[1;95m";// PURPLE publicstaticfinalStringCYAN_BOLD_BRIGHT="\033[1;96m"; // CYAN publicstaticfinalStringWHITE_BOLD_BRIGHT="\033[1;97m"; // WHITE
// High Intensity backgrounds publicstaticfinalStringBLACK_BACKGROUND_BRIGHT="\033[0;100m";// BLACK publicstaticfinalStringRED_BACKGROUND_BRIGHT="\033[0;101m";// RED publicstaticfinalStringGREEN_BACKGROUND_BRIGHT="\033[0;102m";// GREEN publicstaticfinalStringYELLOW_BACKGROUND_BRIGHT="\033[0;103m";// YELLOW publicstaticfinalStringBLUE_BACKGROUND_BRIGHT="\033[0;104m";// BLUE publicstaticfinalStringPURPLE_BACKGROUND_BRIGHT="\033[0;105m"; // PURPLE publicstaticfinalStringCYAN_BACKGROUND_BRIGHT="\033[0;106m"; // CYAN publicstaticfinalStringWHITE_BACKGROUND_BRIGHT="\033[0;107m"; // WHITE }
Ответ 3
Я создал библиотеку под названием JColor, которая работает в Linux, macOS и Windows 10.
Он использует коды ANSI, упомянутые WhiteFang, но абстрагирует их, используя слова вместо кодов, что более интуитивно понятно. Недавно я добавил поддержку 8-и 24-битных цветов 🌈
Выберите свой формат, colorize его и распечатайте:
System.out.println(colorize("Green text on blue", GREEN_TEXT(), BLUE_BACK()));
Вы также можете определить формат один раз и использовать его несколько раз:
AnsiFormatfWarning=newAnsiFormat(RED_TEXT(), YELLOW_BACK(), BOLD()); System.out.println(colorize("Something bad happened!", fWarning));
enumColor { //Color end string, color reset RESET("\033[0m"),
// Regular Colors. Normal color, no bold, background color etc. BLACK("\033[0;30m"), // BLACK RED("\033[0;31m"), // RED GREEN("\033[0;32m"), // GREEN YELLOW("\033[0;33m"), // YELLOW BLUE("\033[0;34m"), // BLUE MAGENTA("\033[0;35m"), // MAGENTA CYAN("\033[0;36m"), // CYAN WHITE("\033[0;37m"), // WHITE
// Bold BLACK_BOLD("\033[1;30m"), // BLACK RED_BOLD("\033[1;31m"), // RED GREEN_BOLD("\033[1;32m"), // GREEN YELLOW_BOLD("\033[1;33m"), // YELLOW BLUE_BOLD("\033[1;34m"), // BLUE MAGENTA_BOLD("\033[1;35m"), // MAGENTA CYAN_BOLD("\033[1;36m"), // CYAN WHITE_BOLD("\033[1;37m"), // WHITE
// Underline BLACK_UNDERLINED("\033[4;30m"), // BLACK RED_UNDERLINED("\033[4;31m"), // RED GREEN_UNDERLINED("\033[4;32m"), // GREEN YELLOW_UNDERLINED("\033[4;33m"), // YELLOW BLUE_UNDERLINED("\033[4;34m"), // BLUE MAGENTA_UNDERLINED("\033[4;35m"), // MAGENTA CYAN_UNDERLINED("\033[4;36m"), // CYAN WHITE_UNDERLINED("\033[4;37m"), // WHITE
// Background BLACK_BACKGROUND("\033[40m"), // BLACK RED_BACKGROUND("\033[41m"), // RED GREEN_BACKGROUND("\033[42m"), // GREEN YELLOW_BACKGROUND("\033[43m"), // YELLOW BLUE_BACKGROUND("\033[44m"), // BLUE MAGENTA_BACKGROUND("\033[45m"), // MAGENTA CYAN_BACKGROUND("\033[46m"), // CYAN WHITE_BACKGROUND("\033[47m"), // WHITE
// High Intensity BLACK_BRIGHT("\033[0;90m"), // BLACK RED_BRIGHT("\033[0;91m"), // RED GREEN_BRIGHT("\033[0;92m"), // GREEN YELLOW_BRIGHT("\033[0;93m"), // YELLOW BLUE_BRIGHT("\033[0;94m"), // BLUE MAGENTA_BRIGHT("\033[0;95m"), // MAGENTA CYAN_BRIGHT("\033[0;96m"), // CYAN WHITE_BRIGHT("\033[0;97m"), // WHITE
// Bold High Intensity BLACK_BOLD_BRIGHT("\033[1;90m"), // BLACK RED_BOLD_BRIGHT("\033[1;91m"), // RED GREEN_BOLD_BRIGHT("\033[1;92m"), // GREEN YELLOW_BOLD_BRIGHT("\033[1;93m"), // YELLOW BLUE_BOLD_BRIGHT("\033[1;94m"), // BLUE MAGENTA_BOLD_BRIGHT("\033[1;95m"), // MAGENTA CYAN_BOLD_BRIGHT("\033[1;96m"), // CYAN WHITE_BOLD_BRIGHT("\033[1;97m"), // WHITE
// High Intensity backgrounds BLACK_BACKGROUND_BRIGHT("\033[0;100m"), // BLACK RED_BACKGROUND_BRIGHT("\033[0;101m"), // RED GREEN_BACKGROUND_BRIGHT("\033[0;102m"), // GREEN YELLOW_BACKGROUND_BRIGHT("\033[0;103m"), // YELLOW BLUE_BACKGROUND_BRIGHT("\033[0;104m"), // BLUE MAGENTA_BACKGROUND_BRIGHT("\033[0;105m"), // MAGENTA CYAN_BACKGROUND_BRIGHT("\033[0;106m"), // CYAN WHITE_BACKGROUND_BRIGHT("\033[0;107m"); // WHITE
privatefinal String code;
Color(String code) { this.code = code; }
@Override public String toString() { return code; } }