JTextArea gefundene Zeile nach Oben Scrollen

Bluedaishi

Bekanntes Mitglied
Hallo zusammen,

ich brauche dringend bei einer jTextArea folgende hilfe oder ich habe dort ein Problem
ich suche eine Zeile in der jTextArea die auch gefunden wird und mir angezeigt wird. Nun möchte ich aber das sie an der Oberen Kante (Rand der JTextArea) angezeigt wird , bis jetzt tauch sie immer in der Mitte oder ganz unten auf.

Kennt sich da jemand aus ????

Java:
String aktStr = ausgabe_jTextArea.getText();
        int Index = aktStr.indexOf(search_stringl);

        if (Index == -1) {
            JOptionPane.showMessageDialog(this, "ZEILE NICHT VORHANDEN",    "Dialog",JOptionPane.INFORMATION_MESSAGE);
        } else {
            ausgabe_jTextArea.requestFocus();
            ausgabe_jTextArea.select(Index, Index + search_string.length());
        }

Vielen Dank
 
So richtig versteh ich deine Frage noch nicht.
Du hast einen JTextArea mit folgendem Beispieltext:
Code:
Das ist Zeile A.
Das ist Zeile B.
Das ist Zeile C.
Die Zeile soll gefunden werden.
Das ist Zeile E.
Das ist Zeile F.

Möchtest du jetzt, dass der Output danach so aussieht?
Code:
Die Zeile soll gefunden werden.
Das ist Zeile A.
Das ist Zeile B.
Das ist Zeile C.
Das ist Zeile E.
Das ist Zeile F.
 
Hallo danke erstmal für deine schnelle Hilfe es sollte danach so aussehen
Code:
Die Zeile soll gefunden werden.
Das ist Zeile E
Das ist Zeile F
Das ist Zeile G
Hast du da eine Idee
 
Folgende Idee:
(1) Schneide die gefundene Zeile aus der JTextArea aus (bspw mit der Methode replaceRange(String, int, int) )
(2) Füge die gefundene Zeile vorne an die JTextArea dran ( mit getText() und setText(String) )
 
dann würde ja die Zeile zweimal in der jTextArea vorhanden sein und bei einem erneuten durch suchen des selben
Textes würde Sie ja dann praktisch zweimal vor kommen.
ich wollte eigentlich nur das die Zeile dann am Oberen Rand steht bzw. sich die ScrollPane soweit nach Obenschiebt
das die Zeile Oben steht 🙂
 
Hab das Probiert aber die gefundene Zeile bleibt mitten oder unten in der JtextArea Stehen. Sie wird nicht zum Oberen
Rand gescrollt. 🙁
 
Ich erlöse dich mal.
Rectangle viewRect = textArea.modelToView(pos);

könntest du durch
Rectangle viewRect = textArea.modelToView(pos*2);

ersetzen um den Text ganz nach oben zu bringen. Jetzt kann es aber zu Fehlern kommen, wenn pos * 2 größer ist als die Höhe der JTextArea.
Daher könntest du noch eine Abfrage einbauen:
Rectangle viewRect = textArea.modelToView((pos * 2 < 400) ? pos*2 : pos);

wobei 400 die Größe deiner JTextArea sein müsste.
 

Zurück
Oben