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

Un applet revoltoso.

Estas en el tema de Un applet revoltoso. en el foro de Java en Foros del Web. El siguiente código es un applet que muestra un textarea con un texto por defecto, y un botón. El usuario puede seleccionar una parte del ...
  #1 (permalink)  
Antiguo 05/08/2007, 10:59
 
Fecha de Ingreso: agosto-2007
Mensajes: 9
Antigüedad: 16 años, 9 meses
Puntos: 0
Un applet revoltoso.

El siguiente código es un applet que muestra un textarea con un texto por defecto, y un botón. El usuario puede seleccionar una parte del texto del textarea, y teniéndola seleccionada, al pulsar sobre el botón, se sustituirá el texto seleccionado por la frase "Hola desde java". La cosa funciona cuando selecciono parte del texto por defecto. También funciona cuando añado texto extra en la misma línea que el texto por defecto. Pero si añado texto extra en una nueva línea del textarea (cuando se está ejecutando el applet), y selecciono una parte de este texto, entonces hace el reemplazo anormalmente. El resultado no es el deseado. Espero puedan ayudarme:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class AREADETEXTO1 extends Applet implements ActionListener {

TextArea areaTexto;
Button boton;

public void init() {
areaTexto = new TextArea("Ya es la hora.",5,20,TextArea.SCROLLBARS_BOTH);
add(areaTexto);
boton = new Button("Haga clic aquí");
add(boton);
boton.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == boton) {
areaTexto.replaceRange("Hola desde Java",areaTexto.getSelectionStart(),areaTexto.getS electionEnd());
}
}
}

Éso mismo me ocurre con un applet que selecciona texto. Cuando el texto está en una nueva línea, no lo selecciona bien. Supongo que tendrá algo que ver con el carácter de nueva línea, aunque no tengo ni idea en realidad:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class AREADETEXTO2 extends Applet implements ActionListener {

TextArea areaTexto;
Button boton;

public void init() {
areaTexto = new TextArea("Ya es la hora.",5,20,TextArea.SCROLLBARS_BOTH);
add(areaTexto);
boton = new Button("Haga clic aquí");
add(boton);
boton.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == boton) {
String texto = areaTexto.getText();
String cadena = new String("hora");
int posicion = texto.indexOf(cadena);
areaTexto.select(posicion,posicion+cadena.length() );
}
}

}

Última edición por danielhispano; 06/08/2007 a las 03:57 Razón: Afinar más en el problema, pues no había hablado sobre el carácter de nueva línea, ni había incluído el segundo applet.
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 01:32.