![]() |
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! |
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. |
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? :-( |
| La zona horaria es GMT -6. Ahora son las 07:03. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.