Foros del Web » Programación para mayores de 30 ;) » Java »

Cambiar texto de color en un JTextArea

Estas en el tema de Cambiar texto de color en un JTextArea en el foro de Java en Foros del Web. Hola! Tengo una aplicación de chat en la que se muestra el texto escrito y el recibido en un JTextArea. Me gustaría cambiar el color ...
  #1 (permalink)  
Antiguo 12/02/2007, 03:31
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 6 meses
Puntos: 0
Cambiar texto de color en un JTextArea

Hola!

Tengo una aplicación de chat en la que se muestra el texto escrito y el recibido en un JTextArea. Me gustaría cambiar el color del texto de los mensajes recibidos para distinguirlos más facilmente de los enviados, he probado con los métodos setSelectionColor() y setSelectedTextColor(), pero no he conseguido nada, ¿alguien podría echarme una mano con esto?

Aquí está el código de los dos métodos que muestran los mensajes enviados y recibidos en la ventana de texto:

//Método que muestra los mensajes recibidos
public void displayRemoteText(String text) {
String oldText = chatTextArea.getText();
String newText;
chatTextArea.setFont(new Font("Helvetica", Font.BOLD, 13));

if (oldText == null || oldText.trim().equals("")) {
//newText = contact + " dice:\n" + text + "\n";
newText = contact + " dice:\n" + text;
}
else {
newText = oldText + "\n\n" + contact + " dice:\n" + text;
}
chatTextArea.setSelectionColor(Color.black);
chatTextArea.setText(newText);
chatTextArea.setCaretPosition(chatTextArea.getText ().length());
}

//Método que muestra los mensajes enviados

public void displayLocalText(String text) {
String oldText = chatTextArea.getText();
String newText;
chatTextArea.setFont(new Font("Helvetica", Font.BOLD, 13));

if (oldText == null || oldText.trim().equals("")) {
newText = "Tú dices:\n" + text;
}
else {
newText = oldText + "\n\n" + "Tú dices:\n" + text;

}
chatTextArea.setSelectionColor(Color.RED);
chatTextArea.setText(newText);

chatTextArea.setCaretPosition(chatTextArea.getText ().length());

messageTextArea.setText("");
}


Muchas gracias!
  #2 (permalink)  
Antiguo 12/02/2007, 03:54
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: Cambiar texto de color en un JTextArea

Hola:

JTextArea es para texto simples y no permite muchas florituras. Prueba con JTextPane o JTextEditor.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 12/02/2007, 04:44
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Cambiar texto de color en un JTextArea

Muchas gracias!

Ya he cambiado a JTextPane, pero ahora tengo un par de problemas... :S

1º No consigo cambiarle el tamaño al componente, he probado con setSize y con setPreferredSize, pero nada.

2º Antes usaba los métodos setLineWrap() y setWrapStyleWord() para que me dividiera el texto en varias líneas si superaba la anchura del JTextArea, pero estos métodos no existen en JTextPane. ¿Qué puedo hacer? ¿Hay alguna forma de conseguir esto con JTextPAne o tengo que escoger entre tener líneas de colores y líneas cortadas automáticamente?

Última edición por evaht; 12/02/2007 a las 05:28
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:19.