JTextPane

rita
02 de Marzo del 2010
Buenas
Tengo una lista de caracteres por ejemplo {111vvv2v2r121r} y quiero sacar esta lista en un JtextPane, cada caracter con un color diferente. lo he implementado asi:

public void setResultadoClasificacion(ArrayList<Character> resultado) {
this.panelResultado.removeAll();
rojo= Color.red;
verde=Color.green;
azul= Color.blue;
// creamos la clase StyleContext en la que nos apoyaremos
StyleContext sc = new StyleContext();

// primer tipo de estilo... color rojo
Style estiloRojo = sc.addStyle(null, null);
StyleConstants.setForeground(estiloRojo, rojo);
StyleConstants.setFontFamily(estiloRojo, "Helvetica");
StyleConstants.setFontSize(estiloRojo, 14);

// para el negro
Style estiloVerde = sc.addStyle(null, null);
StyleConstants.setForeground(estiloVerde, verde);


// para el azul
Style estiloAzul = sc.addStyle(null, null);
StyleConstants.setForeground(estiloAzul, azul);


// creamos el StyledDocument pasandole la clase
// StyleContext que hemos creado antes...
DefaultStyledDocument doc = new DefaultStyledDocument(sc);

// y por fin tenemos ya creado el JTextPane con el
// StyledDocument asociado que le pasamos
JTextPane texto = new JTextPane(doc);
texto.setEditable(false);

this.panelResultado.add(texto);
for (int i=0; i<resultado.size();i++){
if ( resultado.get(i).toString()== String.valueOf('2')){

try {
doc.insertString(texto.getCaretPosition(),resultado.get(i).toString() , estiloRojo);
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}else if ( resultado.get(i).toString()== String.valueOf('r')){

try {
doc.insertString(texto.getCaretPosition(),resultado.get(i).toString() , estiloVerde);
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}else if ( resultado.get(i).toString()== String.valueOf('1')){

try {
doc.insertString(texto.getCaretPosition(),resultado.get(i).toString() , estiloAzul);
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}


this.paintAll(this.getGraphics());
}


el resultado k obtengo es una pantalla vacia, no me sale ni un caracter, no se pk puede ser, a ver si me puede echar alguin una ayuda.
Gracias