有谁知道如何设置将使用System.out
打印的字符串的颜色?
这是我目前的代码:
System.out.println("TEXT THAT NEEDS TO BE A DIFFERENT COLOR.");
答案 0 :(得分:21)
请参阅Wikipedia page on ANSI escapes以获取完整的序列集合,包括颜色。
但是对于Java中的一个简单示例(用红色打印)(将其标记为Java),请执行以下操作:
System.out.println("\u001B31;1mhello world!");
3表示变色,第1个表示红色(绿色表示2),第2个表示在“明亮”模式下表示。
但是,如果要打印到GUI,最简单的方法是使用html:
JEditorPane pane = new new JEditorPane();
pane.setText("<html><font color=\"red\">hello world!</font></html>");
有关此类事项的详细信息,请参阅the Swing Tutorial。通过在JTextPane中使用样式也可以。 Here is a helpful example代码可以使用JTextPane轻松完成此操作(从有用的评论中添加)。
JTextArea是single coloured Text component, as described here。它只能以一种颜色显示。您可以像这样设置整个JTextArea的颜色:
JTextArea area = new JTextArea("hello world");
area.setForeground(Color.red)
答案 1 :(得分:10)
for linux(bash)以下代码适用于我:
System.out.print("\033[31mERROR \033[0m");
<0> \ 033 [31m将颜色切换为红色,\ 033 [0m将其切换回正常。
答案 2 :(得分:4)
Google显然有这样一个库: http://code.google.com/p/jlibs/wiki/AnsiColoring
还有一篇关于此的Javaworld文章解决了你的问题: http://www.javaworld.com/javaworld/javaqa/2002-12/02-qa-1220-console.html
答案 3 :(得分:1)
的setColor()。假设您在AWT上下文中使用Graphics g。
有关其他信息,请参阅the documentation。
答案 4 :(得分:1)
如果要打印到标准输出,则取决于您要打印的终端。您可以在xterms和其他类似的终端模拟器上使用ansi转义码。 这是一个bash代码片段,它将打印xterm,putty和Konsole支持的所有255种颜色:
for ((i=0;i<256;i++)); do echo -en "\e[38;5;"$i"m"$i" "; done
您可以在任何编程语言中使用这些转义码。最好依赖于一个库来决定使用哪些代码,具体取决于体系结构和TERM环境变量的内容。
答案 5 :(得分:1)
我创建了一个名为JCDP的API,前JPrinter,代表 Java彩色调试打印机。对于Linux,它使用WhiteFang提到的ANSI转义码,但是使用单词而不是代码对它们进行抽象,这更加直观。对于Windows,它实际上包含JAnsi库,但在其上创建了一个抽象层,维护了为Linux创建的直观和简单的界面。
此库已获得MIT License许可,因此请随时使用。
答案 6 :(得分:1)
下载jansi-1.4.jar并设置classpath并尝试此代码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();
}
}
答案 7 :(得分:0)
字符串不会封装颜色信息。您是否考虑在控制台或GUI中设置颜色?
答案 8 :(得分:0)
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 );
}
}
}