felix: JScrollPane

Hallo Gemeinde,

ich bekomm ne Krise!!
Ich hab ein JEditorPane in ein JScrollPane gesteckt und will, dass wenn der anzuzeigente Text größer is, als ich Platz hab, dass ich oben Anfangen zu lesen. Aber das ScrollPane scrollt widererwartend nach unten. Wie kann ich das verhindern bzw. ändern??

Ich hab auch schon verschiedene Sachen ausprobiert, aber mehr als ein kurzes raufzucken des Scrollbalkens hab ich nicht hinbekommen.

Hier mal meine Versuche:

JScrollPane myPane = new JScrollPane();

myPane.getVerticalScrollBar().setValue(0);            -> zuckt nur
 myPane.getViewport().setViewPosition(new Point(0,0)); -> zuckt nur
 myPane.setViewport(new Rectangle(0,0,width,height));  -> nichts

Mehr is mir erstmal nicht eingefallen. Jemand ne Ahnung, was ich noch ausprobieren könnte bzw warum er dem Balken nach oben schiebt, ihn aber gleich danach wieder nach unten?

Ich bin absolut ratlos..

  1. Hallo felix,

    Ich hab ein JEditorPane in ein JScrollPane gesteckt und will, dass wenn der anzuzeigente Text größer is, als ich Platz hab, dass ich oben Anfangen zu lesen. Aber das ScrollPane scrollt widererwartend nach unten. Wie kann ich das verhindern bzw. ändern??

    ...auch wenn das nix mit HTML bzw. im Entferntesten mit Java/JSP zu tun hat, sondern eher volle Kanne Swing...

    Mehr is mir erstmal nicht eingefallen. Jemand ne Ahnung, was ich noch ausprobieren könnte bzw warum er dem Balken nach oben schiebt, ihn aber gleich danach wieder nach unten?

    ich weiß nicht genau, wo dein Problem ist, bzw. was genau du machen willst. Eine ganz simple scrollende JEditorPane bekommst du eigentlich sehr einfach mit sowas wie z.B.

    JEditorPane bla = new JEditorPane();
    JScrollPane scrollpane = new JScrollPane(bla);
    scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

    irgendeinContainer.add(bla);

    Grüße,

    Sven

    1. Hallo Sven,

      JEditorPane bla = new JEditorPane();
      JScrollPane scrollpane = new JScrollPane(bla);
      scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

      irgendeinContainer.add(bla);

      so wie Du das beschrieben hast, sieht es bei mir auch aus. Mein Problem ist, dass wenn der Text mehr Platz braucht als ich hab und die Scrollbalken ins Spiel kommen, dann scrollt die nach unten. Das will ich aber nicht, weil ich den Text ja von oben an lesen will! Also will ich, dass der Scrollbalken oben stehtund nicht unten. Wie kann ich das anstellen?

      Ich hoffe, Du weiß jetz wo der Hase im Pfeffer liegt..
      Mir gehen nämlich so langsam die Ideen aus. :(

      1. Hallo felix,

        so wie Du das beschrieben hast, sieht es bei mir auch aus. Mein Problem ist, dass wenn der Text mehr Platz braucht als ich hab und die Scrollbalken ins Spiel kommen, dann scrollt die nach unten. Das will ich aber nicht, weil ich den Text ja von oben an lesen will! Also will ich, dass der Scrollbalken oben stehtund nicht unten. Wie kann ich das anstellen?

        also bei meinen Anwendungen ist das genau andersrum, die Scrollbar
        bleibt per default oben und ich muss sie erst bei jedem Verändern
        der "Textbox" nach unten setzen. Dafür gibts dann quasi "nen kleinen"
        Wrapper.

        Wenn du willst, kann ich dir eine völlig zusammenhangslose kleine
        Klasse hierhin schrieben, die sowas (u.a.) macht. Sie stammt aus
        einer "Widget-Sammlung" eines mehrere dutzend tausend Zeilen
        langen Projektes, welches ich vor einigen Monaten gemacht habe
        (als Demo ist es eigenständig lauffähig):

        http://rafb.net/paste/results/26hxLY72.html
        (Forumssystem lässt den Sourcecode nicht rein weil zu lang :( )

        hab jetzt um die späte Stunde keine Lust mehr, das wesentliche
        rauszuholen.

        Grüße,

        Sven

        1. Mein JBuilder kommt mit dem ContextListener nicht klar. :(