Pasek przewijania JScrollPane skacze w dół na JEditorPane.setText ()

Za każdym razem (z wyjątkiem pierwszego razu) ustawiam tekst w pasku przewijania JEditorPane przeskakuje na dół JEditorPane. Czy jest jakiś sposób, aby tego uniknąć? Jednym ze sposobów, które próbowałem, jest użycie setCaretPosition (0) po ustawieniu setText (). Działa, ale nie jest to dokładnie to, czego potrzebuję. Pasek przewijania zeskakuje, a następnie podskakuje. Czy istnieje sposób na uniknięcie jakiegokolwiek przesunięcia paska przewijania w settext ()?

Mój kod:

package test;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JScrollPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;

public class Test extends JApplet implements  HyperlinkListener {

    JEditorPane dataDisplayer = new JEditorPane();

    public void init() {
        ataDisplayer.setEditable(false);
        dataDisplayer.add(new JButton());
        dataDisplayer.setContentType("text/html");   
        JScrollPane jsp = new JScrollPane(dataDisplayer);
        dataDisplayer.setText("<a href=''>Change Text</a><br><br><br><br><br><br><br><br><br><br>bla");
        this.dataDisplayer.addHyperlinkListener(this);
        setContentPane(jsp);
    }

    @Override
    public void hyperlinkUpdate(HyperlinkEvent arg0) {
        dataDisplayer.setText("<a href=''>Change Text</a><br><br><br><br><br><br><br><br><br><br>bla bla");

    }

}

questionAnswers(2)

yourAnswerToTheQuestion