Как установить цвет строки

Кто-нибудь знает, как установить цвет строки, которая будет напечатана с помощью System.out?
Это код, который у меня есть:

System.out.println("TEXT THAT NEEDS TO BE A DIFFERENT COLOR.");
+15
19 февр. '09 в 13:13
источник поделиться
9 ответов

Консоль

Смотрите страницу Wikipedia на экранах ANSI для полного набора последовательностей, включая цвета.

Но для одного простого примера ( "Печать красным" ) в Java (как вы отметили это как Java):

System.out.println("\u001B31;1mhello world!");

3 указывает цвет изменения, первый 1 указывает на красный (зеленый будет 2), а второй 1 указывает на "яркий" режим.

GUI

Однако, если вы хотите печатать в 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)
+20
19 февр. '09 в 14:04
источник

для linux (bash) следующий код работает для меня:

System.out.print("\033[31mERROR  \033[0m");

the\033 [31m переключит цвет на красный и \033 [0m вернет его в нормальное состояние.

+9
17 февр. '13 в 20:39
источник

У Google, очевидно, есть библиотека для такого рода вещей: http://code.google.com/p/jlibs/wiki/AnsiColoring

Также есть статья Javaworld, которая решает вашу проблему: http://www.javaworld.com/javaworld/javaqa/2002-12/02-qa-1220-console.html

+4
19 февр. '09 в 13:52
источник

SetColor(). Предполагая, что вы используете Graphics g в контексте AWT.

Дополнительную информацию см. в документации.

+1
19 февр. '09 в 13:15
источник

Если вы печатаете на stdout, это зависит от терминала, на который вы печатаете. Вы можете использовать коды перехода ansi на xterms и другие аналогичные эмуляторы терминала. Здесь bash фрагмент кода, который будет печатать все 255 цветов, поддерживаемых xterm, putty и Konsole:

 for ((i=0;i<256;i++)); do echo -en "\e[38;5;"$i"m"$i" "; done

Вы можете использовать эти escape-коды на любом языке программирования. Лучше полагаться на библиотеку, которая будет определять, какие коды использовать в зависимости от архитектуры и содержимого переменной среды TERM.

+1
19 февр. '09 в 13:27
источник

Я создал API под названием JCDP, бывший JPrinter, который представляет собой цветной отладочный принтер Java. Для Linux он использует escape-коды ANSI, упомянутые WhiteFang, но абстрагирует их, используя слова вместо кодов, которые намного интуитивно понятны. Для Windows он фактически включает библиотеку JAnsi, но создает над ним слой абстракции, поддерживая интуитивно понятный и простой интерфейс, созданный для Linux.

Эта библиотека лицензируется в соответствии с Лицензией MIT, поэтому не стесняйтесь ее использовать.

Посмотрите JCDP github репозиторий.

+1
01 апр. '12 в 10:07
источник

Загрузите 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();
  }
}
+1
13 мар. '14 в 12:37
источник

Строки не инкапсулируют информацию о цвете. Вы хотите установить цвет в консоли или в графическом интерфейсе?

0
19 февр. '09 в 13:17
источник
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 );
    }
}
}
0
19 февр. '09 в 13:21
источник

Посмотрите другие вопросы по меткам или Задайте вопрос