Pregunta

Hola
Utilicé un JEditorPane con HTMLEditorKit para mostrar texto HTML con capacidad para ajustar texto.
El problema es que cuando configuro su contenido usando el método .setText, se desplaza automáticamente hasta el final de ese texto.
¿Cómo puedo desactivar esto?

Gracias.

¿Fue útil?

Solución

Puedes probar este truco para guardar la posición del cursor antes del setText() y luego restaurarlo una vez que haya agregado su texto al componente:

int caretPosition = yourComponent.getCaretPosition();
yourComponent.setText(" your long text  ");
yourComponent.setCaretPosition(Math.min(caretPosition, text.length()));

Otros consejos

Pruebe esto:

final DefaultCaret caret = (DefaultCaret) yourEditorPane.getCaret();
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
//!!!!text must be set AFTER update policy has been set!!!!!
yourEditorPane.setText(text);

Pruebe esto después de setText:

Rectangle r = modelToView(0); //scroll to position 0, i.e. top
if (r != null) {
  Rectangle vis = getVisibleRect(); //to get the actual height
  r.height = vis.height;
  scrollRectToVisible(r);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top