Java Swing How to - Set foreground color for different words in JTextPane








Question

We would like to know how to set foreground color for different words in JTextPane.

Answer

import java.awt.Color;
/*from  w  w  w  .  ja v  a 2  s  .  c om*/
import javax.swing.JTextPane;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

public class Main {

  public static void main(String[] args) throws Exception {
    JTextPane textPane = new JTextPane();
    StyledDocument doc = textPane.getStyledDocument();

    Style style = textPane.addStyle("I'm a Style", null);
    StyleConstants.setForeground(style, Color.red);

    doc.insertString(doc.getLength(), "BLAH ", style);

    StyleConstants.setForeground(style, Color.blue);

    doc.insertString(doc.getLength(), "BLEH", style);
  }
}