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

Reemplazar salto de línea al pasar a un JTextArea

Estas en el tema de Reemplazar salto de línea al pasar a un JTextArea en el foro de Java en Foros del Web. Hola gente... tengo una consulta Resulta que tengo una pequeña aplicaciòn, que es un editor de texto. Guardo archivo sin problemas con este código : ...
  #1 (permalink)  
Antiguo 09/04/2010, 22:56
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 15 años, 10 meses
Puntos: 89
Reemplazar salto de línea al pasar a un JTextArea

Hola gente... tengo una consulta

Resulta que tengo una pequeña aplicaciòn, que es un editor de texto.

Guardo archivo sin problemas con este código :

Código java:
Ver original
  1. try {
  2.             File archivo = new File("C:\\PruebaVentanaMenu.txt");
  3.             FileWriter fw = new FileWriter(archivo);
  4.             BufferedWriter bw = new BufferedWriter(fw);
  5.             PrintWriter escritor = new PrintWriter(bw);
  6.             String texto = zonaEdicion.getText();
  7.             escritor.println(texto.replace("\n","\r\n"));
  8.             escritor.close();
  9.         } catch(IOException ex) {
  10.             System.err.println("Error al escribir archivo");
  11.         }

No es muy dinámico aún, por eso especifico la ruta donde quiero guardarlo. Quiero que se fijen en esta línea :

Código java:
Ver original
  1. escritor.println(texto.replace("\n","\r\n"));

Esto me funciona perfecto, cuando guardo el archivo me genera los saltos de líneas sin problema. El problema surge al leer ese archivo...

Tengo lo siguiente :

Código java:
Ver original
  1. try {
  2.                 File archivo = jfc.getSelectedFile();
  3.                 FileReader fr = new FileReader(archivo);
  4.                 BufferedReader br = new BufferedReader(fr);
  5.                 String linea = br.readLine();
  6.                 String texto = "";
  7.                 while (linea != null) {
  8.                     //System.out.println(linea);
  9.                     texto += linea;
  10.                     linea = br.readLine();
  11.                 }
  12.                 zonaEdicion.setText(texto.replace("\n", "\r\n"));
  13.                 br.close();
  14.             } catch (IOException ex) {
  15.                 System.err.println("Se produjo un error al leer el archivo");
  16.             }

He probado estas formas :

Código java:
Ver original
  1. zonaEdicion.setText(texto.replace("\n", "\r\n"));
  2. zonaEdicion.setText(texto.replace("\r\n", "\n"));
  3. zonaEdicion.setText(texto.replace("\r\n", "\r\n")); // Algo estúpido, pero para descartar xD

La verdad no logro que me imprima los saltos de línea en el JTextArea (zonaEdicion). Lo imprime todo en una línea, omitiendo los benditos saltos

He buscado, pero no he encontrado nada que me sirva, solo como separar cadenas a partir de los saltos de línea, lo cual no es lo que pretendo :/.

Agradezco su ayuda de antemano.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #2 (permalink)  
Antiguo 09/04/2010, 23:02
Avatar de dackiller  
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: Reemplazar salto de línea al pasar a un JTextArea

JTextArea tiene una propiedad que muestra o no muestra, no recuerdo como se llama, algo como lineWrap de verdad no recuerdo pero estoy seguro que eso soluciona tu problema...

Saludos
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.
  #3 (permalink)  
Antiguo 10/04/2010, 09:25
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 15 años, 10 meses
Puntos: 89
Respuesta: Reemplazar salto de línea al pasar a un JTextArea

Gracias dackiller, pero no es lo que busco. El método al que te referías es setLineWrap(boolean), pero no hace lo que necesito. Este método hace que las líneas se corten antes de que ocupen todo el espacio disponible, lo cual no es lo que quiero.

He buscado, y encontré esto : http://forums.sun.com/thread.jspa?th...3944&tstart=15

Esa es la solución, ya que el método que lee el archivo, lee línea por línea, es decir, una línea finaliza con "\n", pero por alguna razón no la interpreta como tal, así que luego de cada línea, le agregué automáticamente el "\n", aunque más específicamente usé el System.getProperty("line.separator");.

Les dejo el código :

Código java:
Ver original
  1. try {
  2.                 // Separador...
  3.                 String eol = System.getProperty("line.separator");
  4.                 File archivo = jfc.getSelectedFile();
  5.                 FileReader fr = new FileReader(archivo);
  6.                 BufferedReader br = new BufferedReader(fr);
  7.                 String linea = br.readLine();
  8.                 String texto = "";
  9.                 while (linea != null) {
  10.                     zonaEdicion.append(linea + eol);
  11.                     linea = br.readLine();
  12.                 }
  13.                 br.close();
  14.             } catch (IOException ex) {
  15.                 System.err.println("Se produjo un error al leer el archivo");
  16.             }

Gracias por tu ayuda dackiller
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

Etiquetas: jtextarea, pasar, reemplazar, salto
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 16:02.