10
Not tried it, but there's some code here (which needs some formatting to look nice) which claims to be an ANSI colored JTextPane subclass...
For posterity, here is the class run through NetBeans to format the code
import javax.swing.*;
import javax.swing.text.*;
import java.awt.Color;
public class ColorPane extends JTextPane {
static final Color D_Black = Color.getHSBColor( 0.000f, 0.000f, 0.000f );
static final Color D_Red = Color.getHSBColor( 0.000f, 1.000f, 0.502f );
static final Color D_Blue = Color.getHSBColor( 0.667f, 1.000f, 0.502f );
static final Color D_Magenta = Color.getHSBColor( 0.833f, 1.000f, 0.502f );
static final Color D_Green = Color.getHSBColor( 0.333f, 1.000f, 0.502f );
static final Color D_Yellow = Color.getHSBColor( 0.167f, 1.000f, 0.502f );
static final Color D_Cyan = Color.getHSBColor( 0.500f, 1.000f, 0.502f );
static final Color D_White = Color.getHSBColor( 0.000f, 0.000f, 0.753f );
static final Color B_Black = Color.getHSBColor( 0.000f, 0.000f, 0.502f );
static final Color B_Red = Color.getHSBColor( 0.000f, 1.000f, 1.000f );
static final Color B_Blue = Color.getHSBColor( 0.667f, 1.000f, 1.000f );
static final Color B_Magenta = Color.getHSBColor( 0.833f, 1.000f, 1.000f );
static final Color B_Green = Color.getHSBColor( 0.333f, 1.000f, 1.000f );
static final Color B_Yellow = Color.getHSBColor( 0.167f, 1.000f, 1.000f );
static final Color B_Cyan = Color.getHSBColor( 0.500f, 1.000f, 1.000f );
static final Color B_White = Color.getHSBColor( 0.000f, 0.000f, 1.000f );
static final Color cReset = Color.getHSBColor( 0.000f, 0.000f, 1.000f );
static Color colorCurrent = cReset;
String remaining = "";
public void append(Color c, String s) {
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(SimpleA