Problemas con colores de fuentes

Hola todoswing, el otro día te hice una pregunta sobre como cambiar los colores de las fuentes.Tu respuesta me soluciono parte del problema, ya que ahora puedo elegir el color de la fuente. Pero mi problema es que setText() inicializa el texto del pane, y no encuentro ninguna método que añada (no que substituya) texto al pane, ya que me interesa que en el pane aparezca texto de diferentes colores (sin introducir el texto por el teclado). Solo he encontrado el método append() en el JTextArea, pero esta clase no tiene el método setCharacterAttributes(). ¿Sabrías solucionarlo? Gracias

1 Respuesta

Respuesta
1
Efectivamente es posible añadir texto a un jeditor pane, pero debes tener en cuenta que swing trabaja con un modelo vista/documento, sin entrar en muchos detalles esto es que utiliza dos objetos distintos para el control, uno se encarga de los atributos de visualización dentro del interfaz de usuario y otro encargado de gestionar la información que se muestra, en tu caso necesitas trabajar con el segundo. Para ello debes obtener el objeto Document que almacena el contenido con el método getDocument() e insertar el nuevo contenido con insertString, este método recibe como parámetro el punto del texto donde quieres que se inserte, en tu caso debes especificar doc.getLength() para que te lo añada al final. Junto con este parámetro debes indicar la cadena a insertar y los atributos de esta. Te paso un ejemplo para que lo puedas ver:
Document doc = (Document) editorPane.getDocument();
Element e = doc.getDefaultRootElement();
// Copy attribute Set
AttributeSet attr = e.getAttributes().copyAttributes();
dbg("-- attr = " + attr );
dbg("-- length = " + doc.getLength() );
doc.insertString(doc.getLength(), "Naam", attr);
Muchas gracias todoswing! Por fin he conseguido poner colores bonitos en las fuentes! Me ha servido de mucha ayuda para mi editor prolog en java. Eres un crack!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas