2011-03-28 22 views
5

Estoy construyendo cadena (3 objetos diferentes) y al final de la cadena puse una nueva línea cuando imprimo en la consola obtengo lo que esperaba pero cuando uso setText en el campo de texto me sale se muestra una línea, ¿hay alguna manera de obtener la nueva línea en el campo de texto?Newline " n" en TextField java

while (itr.hasNext()) 
      tx += "\n"+el.getnombre() + " " +other+"\n"; 
    System.out.println(tx); 
    textfield.setText(tx); 
+0

considerar el uso de un 'StringBuilder' en lugar de' TX + = ... '-' si itr.hasAWholeBunch() '' tx' luego la construcción será muy lento. – corsiKa

Respuesta

20

JTextField o TextField (no estoy seguro de lo que está utilizando) son solo para líneas individuales. Si desea una pantalla básica de texto de líneas múltiples y está usando Swing, entonces use un JTextArea. Si no está utilizando Swing, díganos qué biblioteca de GUI está utilizando, ya que este es un detalle importante que su pregunta debería mencionar.

2

Como se mencionó anteriormente, use JTextArea en lugar de JTextField. Y allí o bien use JTextArea.append(String text), o use JTextArea.setText(String text).

  1. Opción: Añade el texto dado al final del documento. Esto agregará texto al final de su JTextArea.

  2. Opción: getText() para obtener el texto de la JTextArea, entonces manipular la cadena, a continuación, utilizar setText(String text) para establecer el texto de la JTextArea a ser la nueva cadena.

para establecer el texto en una nueva línea es necesario añadir "\ n" al final de la cadena. siguiente código muestra la segunda opción:

String oldlines = VisualizeArea.getText(); 
String newline = "your new line" 
VisualizeArea.setText(oldlines + "\n" + newline);