Сегодня он играет простой, но полезный трюк.
Когда мы программируем в Java//мы привыкли//отправлять сообщения по консоль//чтобы информировать пользователей о том, что происходит. Для этого способ по умолчанию, чтобы получить его через el uso de método System.out.println .
Этот метод, в принципе, не позволяет изменять цвет того, что излучается экраном. Все выглядит с цветом по умолчанию, который у нас есть, обычно белый (или светло-серый) на черном фоне, что-то вроде этого:
Однако, когда мы создаем инструмент командной строки, мы можем найти очень полезным//использовать другие цвета, чтобы выделить вещи|/. Например, использовать красный цвет при возникновении исключения и предупреждать об этом после его обработки, или зеленый цвет при успешном выполнении задачи.
Примечание|/: этот тип использования цвета для обозначения значений//недоступен и поэтому они не подходят, если мы хотим, чтобы их могли использовать пользователи с проблемами зрения, такие как дальтоники, которые не различают красный и зеленый. Убедитесь, что в дополнение к цветам вы используете что-то еще в самом тексте/| (заглавные буквы, символы…) чтобы указать, что это специальное мероприятие.
Хорошей новостью является то, что существует ряд кодов//escape ANSI//, которые позволяют нам контролировать определенные аспекты консоли , среди них использовались цвета.
Если мы определим следующие константы в нашем коде:
public static final String ANSI\_BLACK = "\u001B[30m"; public static final String ANSI\_RED = "\u001B[31m"; public static final String ANSI\_GREEN = "\u001B[32m"; public static final String ANSI\_YELLOW = "\u001B[33m"; public static final String ANSI\_BLUE = "\u001B[34m"; public static final String ANSI\_PURPLE = "\u001B[35m"; public static final String ANSI\_CYAN = "\u001B[36m"; public static final String ANSI\_WHITE = "\u001B[37m";
Вы можете использовать их для управления цветом, который мы хотим показать с System.out.println/| .
Кроме того, мы можем определить эту константу:
public static final String ANSI_RESET = "\u001B[0m";
это позволит нам оставить все как было и вернуться к цветам по умолчанию.
Таким образом, мы можем написать следующее:
System.out.println(ANSI_RED + "Texto de color rojo" + ANSI_RESET);
и мы увидим красный цвет, как мы ожидали:
кроме того, оставляя консоль в состоянии по умолчанию, только ниже.
Точно так же мы можем определить ряд констант, чтобы установить цвет фона, который мы хотим использовать с текстом, например:
public static final String ANSI_BLACK_BACKGROUND = "\u001B[40m";public static final String ANSI_RED_BACKGROUND = "\u001B[41m";public static final String ANSI_GREEN_BACKGROUND = "\u001B[42m";public static final String ANSI_YELLOW_BACKGROUND = "\u001B[43m";public static final String ANSI_BLUE_BACKGROUND = "\u001B[44m";public static final String ANSI_PURPLE_BACKGROUND = "\u001B[45m";public static final String ANSI_CYAN_BACKGROUND = "\u001B[46m";public static final String ANSI_WHITE_BACKGROUND = "\u001B[47m"
С их помощью мы можем также установить цвет фона и объединить их с предыдущими, чтобы цвет текста, а также:
System.out.println(ANSI_GREEN_BACKGROUND + ANSI_BLUE + "Texto de color azul sobre fondo verde");System.out.println("Como no lo he resetado sigue igual.");System.out.println("¡Reseteo ahora!" + ANSI_RESET);System.out.println("FIN");
получение этого на экране:
Если вы заметили, что до тех пор, пока вы не посылаете код управления “reset”, цвет по умолчанию не будет повторно установлен, поэтому вы можете отправлять команды, которые не видны для изменения цвета без необходимости писать что-либо, и использовать их просто, чтобы контролировать изменение цвета.
Я оставляю вам эти примеры (с константами, которые вас интересуют), работающими//внутри этого repl.it |/. Нажмите на зеленая кнопка треугольника, чтобы запустить его и увидеть результаты.
Один улов: он не работает в Windows… По умолчанию.
Это, что я только что научил вас отлично работает на Mac и Linux. Но если вы попытаетесь использовать его с Java в консоли Windows вы увидите, что это не работает для вас.
К счастью, есть библиотека с открытым исходным кодом под названием//JANSI|/, которая использует эта//Java Native Interface (JNI)//для последовательного получения одинаковых результатов во всех операционных системах, включая Windows.
Просто загрузите его, добавьте в свой проект и используйте его конкретные методы вместо предыдущих констант. Он будет работать и в системе окон. Посмотрите документацию на Github, и вы увидите, что это очень просто.
Надеюсь, вы найдете это полезным!
Оригинал сообщения: Оригинал сообщения:
Оригинал: “https://dev.to/campusmvp/cmo-cambiar-los-colores-de-la-consola-con-java-y-systemoutprintln-23l2”