2011-01-11 18 views
7

la única manera en que podría cambiar el color es por setForground(). Sin embargo, cuando hay varias líneas de código, todo se vuelve verde o negro. ¿Hay algún otro método o alguna forma de resolver este problema? ¡Gracias!Java: ¿Cómo puedo cambiar el color de una línea específica o fila de cadena en un área de Texto?

int key = evt.getKeyCode(); 
    if (key == KeyEvent.VK_ENTER) 
    { 
     String tb1EnterdValue = tb1.getText().toString(); 
     if((tb1EnterdValue.equals("yes"))) 
     { 
      TextArea1.setForeground(Color.green); 
    else 
     { 
       TextArea1.setForeground(Color.lightGray); 
     } 
     this.TextArea1.append(">"+tb1EnterdValue+newline); 
     this.tb1.setText(""); 

Respuesta

3

Usaría un JTextPane con "atributos" (no HTML) para cambiar el color del texto. La sección del tutorial Swing en Text Component Features tiene ejemplos prácticos para comenzar.

he tratado JTextPanes antes, pero no me deja utilizar método append()

El modo de adición() método es sólo un método de conveniencia que le permite añadir texto al final de el documento. Puede implementar su propio método append() para un JTextPane también. Solo mira el código fuente de JTextArea y copia el código de su método append().

+0

Gracias, pero ¿cómo exactamente obtengo el código fuente de JTextArea? – Kevin

+0

El código fuente viene con el JDK. Está en un archivo llamado src.zip. – camickr

+0

Entendido pero ¿dónde copio este código? – Kevin

0

¿Es este Swing y utiliza JTextAreas? Si es así, sea específico en su pregunta, y luego no use un JTextArea ya que no es el componente de texto ideal para usar si quiere tener múltiples formatos dentro de un componente de texto. En su lugar, considere el uso de un JTextPane o JEditorPane. Los tutoriales le mostrarán cómo usarlos y cuándo deberían usarse.

+0

sí, es un columpio y JTextArea. He intentado con JTextPanes antes, pero no me dejan usar el método append() y necesito hacer cada 'comando' en una nueva línea. – Kevin

+0

La falta de anexión no debe impedir el uso de otros componentes de texto, ya que podría agregar texto al Documento del componente. –

+0

¿Cómo hago eso? Porque necesito el cursor para hacer una nueva línea después de cada entrada en el texto, lo que sea. ¿Hay algún método que sea similar a append? – Kevin

Cuestiones relacionadas