JTextArea zu Zeile X scrollen

Dit_

Bekanntes Mitglied
Hallo,

wie kann ich zu einer bestimmten Zeile in JTextArea scrollen und zwar so dass die Zeile ganz oben steht.

Ich versuchte mit
Java:
textArea.setCaretPosition(position);
es wird zur gewünschten Zeile gescrollt die steht aber ganz unten.

gibt es eine andere Möglichkeit?

Danke schon mal 🙂
 
Sowas wie
Java:
int lineNumber = 100;
int offset = textarea.getLineStartOffset(lineNumber);
Rectangle rec = textarea.modelToView( offset );
scrollpane.getViewport().setViewPosition(new Point(0,rec.y) );
textarea.scrollRectToVisible(rec);
könnte funktionieren.
 
Zuletzt bearbeitet:
Also du hast quasi "blabla, zeilentext" und willst dahinspringen? Dann kannst du die gleiche Methode verwenden, nur die offset-Berechnung sieht dann so aus:
Java:
int offset = textarea.getText().indexOf("blabla, zeilentext");
if (offset<0) {
  offset = 0; //sonst wirst du eine Exception bekommen
}
 
Hmm Problem 🙂

Wenn ich den Editor in main-Methode starte:
Java:
public static void main(String[] args) {
       Editor e = new Editor();
       e.showAndScrollTo("blabla");
}

so wird richtig gescrollt.


Starte ich aber den Editor in meiner Anwendung:

Java:
public void openEditor() {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                 Editor e = new Editor();
                e.showAndScrollTo("blabla");
            }
        });
    }

wird nicht gescrollt ...


woran könnte das liegen?
 

Zurück
Oben