Aus dynamischer HTML lesen und scrollen

Herbertus

Mitglied
Guten Tag,

ich sitze hier schon eine kleine Weile dran und hoffe nun, dass ihr mir noch eine gute Idee oder die Lösung liefern könnt.

Das Problem sieht so aus, ich habe eine dynamisch erzeugte HTML-Seite.
Diese wird in ein JScrollPanel eingefügt und man kann ,live' damit arbeiten .. durch das bearbeiten muss natürlich die Seite neu erzeugt werden nun jetzt springt der Scrollbalken(Vertikale) immer wieder komplett nach oben, er sollte aber zu der geänderten Stelle springen(scrollen).

Eine Speicherung des Y-Wertes kommt nicht in Frage, da ja das bearbeitete nicht immer auch in Sichtfeld ist/war,.. ich habe schon probiert Buttons einzufügen(1x1Pixel groß und unsichtbar und deren Position dann abzufragen, praktisch als Scrollwert), mit Ankern und ID's hantiert, aber erfolglos.. vllt. mach ich auch einfach i-was falsch.

Dadurch, dass sie immer wieder geändert wird, hab ich natürlich nie eine feste Seite (immer speichern und laden würde zu lange dauern) und sie auch Tabellen und Bilder enthält, fällt ein Suche-Wort-in-Zeile-Scroll-zu-der-Zeile flach.

Vllt. hat ja wer von euch noch nen Tipp :confused: und/oder hatte schonmal das selbe Problem. Ansonsten muss der immer wiederkehrende auto. Anfangsscroll wohl bleiben!

MfG
 
Zuletzt bearbeitet:
Ich habe es nun gelöst. So sieht man Weg aus, falls es mal auch wer braucht :


Ich hab in der dynamisch erzeugten HTML Seite Anker angebaut, die wie der jeweilige TItel/Text heißen.

Nun hab ich sie gewohnt das EditorPane(was die Seite enthält) ganz normal den JScrollPane übergeben und JScrollPane auch weiterhin wie gewohnt in den Frame eingefügt.

Nachdem einfügen hab ich folgendes gemacht:

Java:
    // Bedingung ist bei mir eine Seiten anzahl oder ein Abschnitt, welcher der Methode mitgegeben werden kann
     if( Bedindung) {

        // var1 muss final sein ud in der run() gebraucht, ubergebeneVar ist die auf die Methode gegebene...
       // die ubergebene kann schon der anker sein, sonst muss man es halt anders machen, 
// je nachdem, .. bei mir ist es eine int, weil die ubergebeneVar nur ein Index von
// einem Array ist, 
// was Objekte enthält. Bei dem Objekt gibt es die möglichkeit mit getTitel (oder getText)
// einen String zubekommen... 
         final int var1= ubergebeneVar;

         SwingUtilities.invokeLater(new Runnable() {
            public void run() {

               // Euer JEditorPane sollte natürlich nicht so heißen, .. ;) 
               EditorPane.scrollToReference(var1);
             
            }
         });
      }
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück