【发布时间】:2021-12-26 11:06:23
【问题描述】:
谁能告诉我如何在 Java 中用颜色在终端上打印我的字符串?如果有为此目的的图书馆,请介绍给我,我宁愿使用一个也不愿自己做这项工作:)
提前致谢。
【问题讨论】:
-
@AlexandruSomai 谢谢,是的,这是我的问题的答案,但我宁愿使用Soroush Shemshadi 提供的库。尽管我在您引用的问题的答案中为此目的找到了另一个库。我必须检查两者,看看哪个更好。还是谢谢你:)
谁能告诉我如何在 Java 中用颜色在终端上打印我的字符串?如果有为此目的的图书馆,请介绍给我,我宁愿使用一个也不愿自己做这项工作:)
提前致谢。
【问题讨论】:
是的,有。我在 Java 中实现了一个名为 JTerminal 的库,用于在终端上打印自定义输出,包括具有所需前景和背景颜色的 print 和 println。支持8位256色(XTerm代码)。
这是一个易于使用的库。要使用您想要的颜色打印字符串,您只需静态调用 print 或 println 方法:
import io.github.shuoros.jterminal.JTerminal;
import io.github.shuoros.jterminal.ansi.Color;
public class Main {
public static void main(String[] args) {
// Prints "Hello World!" with orange foreground color
JTerminal.println("Hello World!", Color.ORANGE);
// Prints "Hello World!" with orange foreground and white background color
JTerminal.println("Hello World!", Color.ORANGE, Color.WHITE);
}
}
您还可以通过一行代码为您的字符串在不同范围内用不同的颜色着色:
import java.util.List;
import io.github.shuoros.jterminal.JTerminal;
import io.github.shuoros.jterminal.ansi.Color;
import io.github.shuoros.jterminal.util.TextEntity;
public class Main {
public static void main(String[] args) {
// Prints ">JTerminal:~ 1.0.2" with the colors of its logo
JTerminal.println(">JTerminal:~ 1.0.2", List.of(//
new TextEntity(0, 1, Color.DARK_SEA_GREEN_7), //
new TextEntity(1, 10, Color.ORANGE), //
new TextEntity(10, 12, Color.DARK_SEA_GREEN_7), //
new TextEntity(12, 18, Color.WHITE)));
}
}
要将 JTerminal 添加到您的 maven 或 gradle 项目中,您可以添加其依赖项:
<!-- https://mvnrepository.com/artifact/io.github.shuoros/JTerminal -->
<dependency>
<groupId>io.github.shuoros</groupId>
<artifactId>JTerminal</artifactId>
<version>1.0.2</version>
</dependency>
// https://mvnrepository.com/artifact/io.github.shuoros/JTerminal
implementation group: 'io.github.shuoros', name: 'JTerminal', version: '1.0.2'
前往JTerminal github repository 获取一些示例。
【讨论】:
控制台输出画面默认为黑色或白色。
如果您想在输出屏幕上突出显示某些文本,可以使用 ANSI 颜色代码并突出显示特定文本。
System.out.println(ANSI_COLORNAME + "This text is colored" + ANSI_RESET);
【讨论】: