AlexLg89 Geschrieben 18. April 2008 Geschrieben 18. April 2008 Hi. Ich habe ein Programm das beim Schliessen die Position der Scrollbars speichert. Beim erneuten Öffnen sollen die Scrollbars wieder da sein, wo sie vor dem Schlißen waren. Die horizontale Scrollbar klappt auch soweit, nur die vertikale möchte irgendwie nicht so ganz. Sie bleibt einfach ganz oben, während die horzontale wieder dahin springt, wo sie vor dem Schlißen war. Zum Ändern benutze ich folgenden Code: this.scrollPane.getViewport().setViewPosition(new java.awt.Point(this.scrollPosX,this.scrollPosY)); scrollPosX und scrollPosY sind vom Typ int. Kann mir jemand helfen? Was mache ich falsch? Danke euch schonmal im Vorraus! Zitieren
Dragon8 Geschrieben 18. April 2008 Geschrieben 18. April 2008 Also soweit ich das sehe, und gerade ausgetestet habe, machst nichts falsch. Die Anweisung ist schon richtig so. Bist du dir denn aber auch sicher, dass dein scrollPosY den richtigen Wert hat, sobald er die ScrollPane wieder an ihren alten Platz scrollt? Sieht für mich ganz so aus, als wenn die am Anfang entweder nicht richtig gesetzt wird oder zwischendurch nen anderen Wert bekommt. Zitieren
AlexLg89 Geschrieben 18. April 2008 Autor Geschrieben 18. April 2008 Also bei jedem Schließen speicher ich es in einer Datei. Bei jedem Start werden die Daten ausgelesen, wenn sie vorhanden sind. In der Config steht gerade: scrollX#499 scrollY#104 Bevor ich dann meinen Befehl zum Setzen aufrufe habe ich mal einen Testdruck gemacht, der beide Variabeln ausgibt. Und scheinbar haben sie die richtigen Werte. Zitieren
Cobinja Geschrieben 20. April 2008 Geschrieben 20. April 2008 Wird vielleicht nach dem Setzen der Position eine automatische Selektierung oder etwas in der Art durchgeführt, so daß der Viewport wieder nach ganz oben gesetzt wird? Zitieren
AlexLg89 Geschrieben 21. April 2008 Autor Geschrieben 21. April 2008 Hab den Fehler gefunden. Hab nach dem Setzen ein validate() aufgerufen. Jetzt funktioniert es jedenfalls Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.