有谁知道我将如何设置将要打印的字符串的颜色System.out
?
这是我目前拥有的代码:
System.out.println("TEXT THAT NEEDS TO BE A DIFFERENT COLOR.");
有谁知道我将如何设置将要打印的字符串的颜色System.out
?
这是我目前拥有的代码:
System.out.println("TEXT THAT NEEDS TO BE A DIFFERENT COLOR.");
有关完整的序列集合(包括颜色),请参阅有关 ANSI 转义的 Wikipedia 页面。
但是对于 Java 中的一个简单示例(以红色打印)(如您将其标记为 Java),请执行以下操作:
System.out.println("\u001B31;1mhello world!");
3 表示改变颜色,第一个 1 表示红色(绿色将是 2),第二个 1 表示在“明亮”模式下进行。
但是,如果要打印到 GUI,最简单的方法是使用 html:
JEditorPane pane = new new JEditorPane();
pane.setText("<html><font color=\"red\">hello world!</font></html>");
有关此类事情的更多详细信息,请参阅Swing 教程。也可以通过在 JTextPane 中使用样式。这是一个有用的代码示例,可以使用 JTextPane 轻松完成此操作(从有用的评论中添加)。
JTextArea 是一个单一颜色的文本组件,如此处所述。它只能以一种颜色显示。您可以像这样设置整个 JTextArea 的颜色:
JTextArea area = new JTextArea("hello world");
area.setForeground(Color.red)
对于 linux (bash) 以下代码适用于我:
System.out.print("\033[31mERROR \033[0m");
\033[31m 将颜色切换为红色,\033[0m 将其切换回正常。
谷歌显然有一个这类东西的库: http ://code.google.com/p/jlibs/wiki/AnsiColoring
还有一篇 Javaworld 文章可以解决您的问题: http ://www.javaworld.com/javaworld/javaqa/2002-12/02-qa-1220-console.html
如果您要打印到标准输出,则取决于您要打印到的终端。您可以在 xterms 和其他类似的终端仿真器上使用 ansi 转义码。这是一个 bash 代码片段,它将打印 xterm、putty 和 Konsole 支持的所有 255 种颜色:
for ((i=0;i<256;i++)); do echo -en "\e[38;5;"$i"m"$i" "; done
您可以在任何编程语言中使用这些转义码。最好依赖一个库,该库将根据架构和 TERM 环境变量的内容来决定使用哪些代码。
设置颜色()。假设您在 AWT 上下文中使用 Graphics g。
请参阅文档以获取更多信息。
下载 jansi-1.4.jar 并设置类路径并尝试此代码 100% 工作:
import org.fusesource.jansi.AnsiConsole;
import static org.fusesource.jansi.Ansi.*;
import static org.fusesource.jansi.Ansi.Color.*;
public class SampleColour
{
public static void main(String[] args)
{
AnsiConsole.systemInstall();
System.out.println(ansi().fg(RED).a("Hello World").reset());
System.out.println("My Name is Raman");
AnsiConsole.systemUninstall();
}
}
public class colorString
{
public static void main( String[] args )
{
new colorString();
}
public colorString( )
{
kFrame f = new kFrame();
f.setSize( 400, 400 );
f.setVisible( true );
}
private static class kFrame extends JFrame
{
@Override
public void paint(Graphics g)
{
super.paint( g );
Graphics2D g2d = (Graphics2D)g;
g2d.setColor( new Color(255, 0, 0) );
g2d.drawString("red red red red red", 100, 100 );
}
}
}
字符串不封装颜色信息。您是否正在考虑在控制台或 GUI 中设置颜色?