JScrollPane: Scrollleiste auf Anfangsposition setzten – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self JScrollPane: Scrollleiste auf Anfangsposition setzten Mon, 26 Apr 10 16:01:51 Z https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444375#m1444375 https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444375#m1444375 <p>Hallo,<br> ich weise eine JEditorPane (mit Scrollleiste) per .setText() einen längeren Text bei der Inititialisierung zu. Dadurch wird leider gleich der Scrollbalken aktiv und verschiebt sich nach unten.</p> <p>Wie kann ich ihn im Quellcode auf die Anfangsposition zurücksetzten?</p> <p>Beste Grüße!<br> Beinke</p> JScrollPane: Scrollleiste auf Anfangsposition setzten Tue, 27 Apr 10 05:36:37 Z https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444376#m1444376 https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444376#m1444376 <p>Guten Morgen,</p> <blockquote> <p>[...]</p> <p>Wie kann ich ihn im Quellcode auf die Anfangsposition zurücksetzten?</p> </blockquote> <p>Kennst Du die Java Swing How Tos? Du hast in den letzten Tagen einige Fragen dazu gestellt, die dort mit hoher Wahrscheinlichkeit beantwortet werden: http://java.sun.com/docs/books/tutorial/uiswing/components/componentlist.html<br> Zu Deiner aktuellen Frage könnte JComponent#scrollRectToVisible(Rectangle) das Richtige für Dich sein.</p> <p>Schöne Grüße,</p> <p>Peter</p> JScrollPane: Scrollleiste auf Anfangsposition setzten Tue, 27 Apr 10 09:23:09 Z https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444377#m1444377 https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444377#m1444377 <p>Hallo Peter,</p> <p>mit JComponent#scrollRectToVisible(Rectangle) komme ich irgendwie nicht weiter.</p> <p>Ich dachte auch schon ich hätte mit</p> <p>//Code:<br> JScrollBar bar = MeineScrollPane.getVerticalScrollBar();<br> bar.setValue( bar.getMinimum() );  //bar.getMinimum() == 0</p> <p>die Lösung. Klappt aber leider nicht.</p> <p>Beste Grüße!<br> Beinke</p> <p>PS:<br> Java Swing How Tos werde ich mir mal anschauen. Danke für den Tip!</p> JScrollPane: Scrollleiste auf Anfangsposition setzten Tue, 27 Apr 10 11:24:51 Z https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444378#m1444378 https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444378#m1444378 <blockquote> <p>[...] Klappt aber leider nicht. [...]</p> </blockquote> <p>Das mit Deiner Fehlerbeschreibung klappt aber leider nicht. ;)<br> Was hast Du, was erwartest Du, was erhältst Du?</p> <p>Schöne Grüße,</p> <p>Peter</p> JScrollPane: Scrollleiste auf Anfangsposition setzten Wed, 28 Apr 10 07:25:22 Z https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444379#m1444379 https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444379#m1444379 <p>Hier mein Quellcode (das wesentliche):<br> --------------<br> ...<br> meineJScrollPane = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);<br> ...<br> meineJEditorPane = new JEditorPane();<br> ...<br> meineJScrollPane.setViewportView(meineJEditorPane);<br> ...<br> --------------<br> //Ausgabe von...<br> System.out.println( meineJScrollPane1.getViewport().getVisibleRect() );<br> //liefert immer:<br> java.awt.Rectangle[x=0,y=0,width=0,height=0]</p> <p>Zu meinem letzten Posting:<br> bar.getMinimum() liefert 0<br> bar.getMaximum() liefert 100</p> <p>Warum ich aber per</p> <p>bar.setValue(0);</p> <p>kein Verschieben Scroll-Anfassers auf Position 0 erreiche - keine Ahnung!</p> JScrollPane: Scrollleiste auf Anfangsposition setzten Wed, 28 Apr 10 07:39:10 Z https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444380#m1444380 https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444380#m1444380 <p>Guten Morgen,</p> <blockquote> <h3>[...]<br> meineJScrollPane = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);<br> ...<br> meineJEditorPane = new JEditorPane();<br> ...<br> meineJScrollPane.setViewportView(meineJEditorPane);<br> ...</h3><p>//Ausgabe von...<br> System.out.println( meineJScrollPane1.getViewport().getVisibleRect() );<br> //liefert immer:<br> java.awt.Rectangle[x=0,y=0,width=0,height=0]<br> [...]<br> Warum ich aber per<br> bar.setValue(0);<br> kein Verschieben Scroll-Anfassers auf Position 0 erreiche - keine Ahnung!</p> </blockquote> <p>Hast Du es denn auch mal mit der von mir oben genannten Methode probiert? Steht in dem Tutorial nichts zum Thema programmatisch scrollen? Vielleicht fehlt bei Deiner direkten Manipulation der Scrollbar ein repaint.</p> <p>Schöne Grüße,</p> <p>Peter</p> JScrollPane: Scrollleiste auf Anfangsposition setzten Wed, 28 Apr 10 08:20:31 Z https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444381#m1444381 https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444381#m1444381 <p>Bei Deinem</p> <p>meineJEditorPane.scrollRectToVisible(???);</p> <p>weiß ich nicht welchen Parameter ich da eingeben soll (habe ein new Rectangle(0,0,0,0) versucht, brachte aber nichts).</p> <p>repaint() brachte auch nichts.</p> <p>Ich gebe die Sache jetzt erst einmal vorerst auf. Als Anfänger fehlt mir da einfach noch das nötige Hintergrundwissen. Vielleicht finde ich ja doch noch irgendwann Beispielcode zu genau diesem Problem im Web.</p> <p>Vielen herzlichen Dank nochmal für Deine Hilfe!<br> Beinke</p> JScrollPane: Scrollleiste auf Anfangsposition setzten Wed, 28 Apr 10 09:41:59 Z https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444382#m1444382 https://forum.selfhtml.org/self/2010/apr/26/jscrollpane-scrollleiste-auf-anfangsposition-setzten/1444382#m1444382 <p>Ich habe eine zumindest eine (leicht unsaubere) Lösung:</p> <p>meineJEditorPane.setCaretPosition(0);</p> <p>Kleiner Schönheitsfehler dabei:<br> Der Cursor ist leider nicht mehr am Ende des Textes, sondern am Anfang des Textes.</p> <p>Wem das nicht reicht:<br> Diese Seite habe ich gerade gegoogelt (klingt SEHR vielversprechend und behandelt genau mein Thema):<br> http://www.tutorials.de/forum/swing-java2d-3d-swt-jface/317815-jsrollbar-bzw-jscrollpane-automatisch-nach-oben-scrollen.html</p> <p>Die Seite bietet mind. 2 Lösungswege, die wohl auch bei den Autoren funktionierten. Bei mir funktionierten sie nicht (habe aber auch wie gesagt nicht den nötigen Durchblick in der Materie).</p>