Wie beschleunige ich die Scrollgeschwindigkeit in einem JScrollPane, wenn ich das Mausrad verwende?

Lesezeit: 2 Minuten

Ich sehe die Methode JScrollPane.setWheelScrollingEnabled(boolean) zum Aktivieren oder Deaktivieren des Scrollens mit dem Mausrad. Gibt es jedoch eine Möglichkeit, die Geschwindigkeit des Scrollens anzupassen? Es ist meiner Meinung nach lächerlich langsam. Egal, wie groß ich das Fenster mache, das Scrollen beträgt etwa drei Pixel pro Klick. Ich möchte, dass es viel mehr als das ist.

Irgendwelche Ideen?

  • Hinweis: Für alle, die nach Java suchenSkript Äquivalent dazu, siehe Mausrad in jScrollPane (jQuery) beschleunigen.

    – Boanne

    11. Oktober 2013 um 8:05 Uhr

Benutzer-Avatar
StKiller

Sie können dies versuchen:

myJScrollPane.getVerticalScrollBar().setUnitIncrement(16);

  • Schön. Mir ist auch aufgefallen, dass dies die Aufwärts- und Abwärtspfeile in der Bildlaufleiste betrifft, was ebenfalls sehr erwünscht ist.

    – Eric Robertson

    7. April 2011 um 15:44 Uhr

  • @AlizainPrasla – beim Initialisieren dieses Bildlauffelds.

    – StKiller

    10. Mai 2013 um 10:39 Uhr

  • Wie würde sich dies auch auf das Klicken in den Bereich zwischen dem Bildlauffeld und den Aufwärts- oder Abwärtspfeilen in der Bildlaufleiste auswirken?

    – Rune

    28. August 2013 um 17:07 Uhr

  • @Rune – scheint, dass die Bildlaufleiste auf die Mausposition eingestellt ist, wobei der Einheiteninkrementwert ignoriert wird.

    – StKiller

    28. August 2013 um 17:39 Uhr

  • @AndreiPodoprîgora Sie sollten beachten, dass das Ändern dieses Werts nur die Bildlaufgeschwindigkeit ändert, wenn mit einem Mausrad (oder einem anderen Gerät, das Bildlauf ermöglicht), den Pfeiltasten und den Pfeilen der Bildlaufleiste gescrollt wird. Dieser Wert wirkt sich nicht auf die Geschwindigkeit aus, mit der sich das Bildlauffenster bewegt, wenn der Knopf der Bildlaufleiste herumgezogen wird. Es ist sehr schwer, diesen Wert zu ändern. Wenn Sie dies erreichen möchten, sollten Sie der Bildlaufleiste benutzerdefinierte Anpassungs-Listener hinzufügen und deren Werte ändern.

    – Tim Visée

    23. November 2013 um 14:25 Uhr

Eine Möglichkeit wäre, das Einheiteninkrement der Bildlaufleiste auf eine größere Zahl einzustellen:

scrollPane.getVerticalScrollBar().setUnitIncrement(20);

Sie können dies tun, indem Sie das Einheiteninkrement für eine ScrollBar festlegen. Siehe Beispiel.

yourScrollPane.getVerticalScrollBar().setUnitIncrement(16);

Wenn Sie den Scrollbetrag des Mausrads unabhängig vom Betrag der Scrollbar-Einheit einstellen möchten, können Sie die verwenden Mausrad-Controller.

Eine schnelle Suche brachte diese Seite: So erhöhen Sie die JScrollPane-Scrollgeschwindigkeit für Mausradbenutzer. Es stellt sich heraus, dass das Scroll-Inkrement eine Eigenschaft der Scroll-Leiste selbst ist (JScrollBar.setUnitIncrement) und nicht das Bildlauffenster.

Benutzer-Avatar
Brad Mace

Für eine präzisere Steuerung kann die zu scrollende Komponente die Scrollable-Schnittstelle implementieren. Dadurch können Sie die Größe der Scrolleinheit (Pfeiltasten und Pfeiltasten) und die Größe des Scrollblocks (Mausrad) dynamisch berechnen.

So verwenden Sie Bildlauffenster

Benutzer-Avatar
DrHales

Ich habe versucht, eine bessere Methode zu finden, um 32000 Zeilen in meinem ScrollPane durchzulesen

Versuche dies

scrollPane.getVerticalScrollBar().setUnitIncrement(100);
scrollPane.getViewport().putClientProperty("EnableWindowBlit", Boolean.TRUE);
scrollPane.getViewport().setScrollMode(JViewport.BACKINGSTORE_SCROLL_MODE);

1304090cookie-checkWie beschleunige ich die Scrollgeschwindigkeit in einem JScrollPane, wenn ich das Mausrad verwende?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy