如何根据控件的值更改控制台中字符串的颜色。 例如:如果's'是在类中声明的字符串。
我有一个使用if else返回(成功或失败)的方法。 现在我想将方法的返回值赋给's'并更改它在控制台中显示的颜色。 即,如果'success'.print是绿色等;
答案 0 :(得分:7)
字符串本身没有任何格式信息。如何以特定方式显示字符串将取决于输出上下文 - 例如,在可能能够使用ANSI escape sequences的控制台中(如果您的控制台支持他们);在HTML中,您使用样式(或类似);在Swing UI中,您可能会更改控件的前景色。
因此,如果您知道您将使用终端/控制台,请尝试我链接到的ANSI转义码 - 但要注意它们不会普遍使用。
答案 1 :(得分:1)
标准Java文本控制台是跨平台的,因此它本身不支持颜色。根据您的平台,您可以使用不同的转义码等来获得所需的结果,但所有这些都非常容易出错并且需要额外的工作。
这是一个建议:
给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中不起作用。但是,当我从命令行在我的机器上运行它时,它按预期工作。
祝你好运!