изменить цвет строки в Java - PullRequest
       0

изменить цвет строки в Java

2 голосов
/ 13 октября 2011

как изменить цвет строки в консоли в зависимости от ее значения.Например: if 's' - это строка, объявленная в классе.

У меня есть метод, который возвращает (успех или неудача), используя if else.Теперь я хочу присвоить возвращаемое значение метода 's' и изменить цвет, в котором оно отображается в консоли.то есть, если 'success'. Печать в зеленом цвете и т. д .;

Ответы [ 2 ]

7 голосов
/ 13 октября 2011

Сама строка не имеет никакой информации о форматировании. То, как вы отобразите строку определенным образом, будет зависеть от выходного контекста - например, в консоли вы можете использовать escape-последовательности ANSI ( если ваша консоль их поддерживает); в HTML вы бы использовали стили (или аналогичные); в пользовательском интерфейсе Swing вы могли бы изменить цвет переднего плана элемента управления.

Так что, если вы знаете , что собираетесь использовать терминал / консоль, попробуйте коды выхода ANSI, с которыми я связан, - но помните, что они не будут работать универсально.

1 голос
/ 13 октября 2011

Стандартная текстовая консоль Java является кроссплатформенной, поэтому она изначально не поддерживает цвета.Вы можете, в зависимости от вашей платформы, использовать различные escape-коды и т. Д., Чтобы получить требуемый результат, но все это довольно подвержено ошибкам и требует много дополнительной работы.

Вот предложение:

Дайте библиотеке Jansi (http://jansi.fusesource.org/) вихрь.

Подробнее о кодах ANSI можно прочитать здесь http://www.ioncannon.net/ruby/101/fun-with-ansi-escape-codes/

С библиотекой Jansi вы сможете раскрасить тексткак вы хотите, например:

    AnsiConsole.systemInstall();
    AnsiConsole.out.println("\033[32mHowdy");

Приведенный выше код печатает Howdy зеленым цветом в консоли, хотя это не очень хорошо работает в среде IDE. Однако, когда я запускаю его на своем компьютере изв командной строке все работает как положено.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...