web-dev-qa-db-fra.com

Comment accélérer la vitesse de défilement dans un JScrollPane lorsque j'utilise la molette de la souris?

Je vois la méthode JScrollPane.setWheelScrollingEnabled(boolean) pour activer ou désactiver le défilement de la molette de la souris. Existe-t-il un moyen d'ajuster la vitesse de défilement? C'est, à mon avis, ridiculement lent. Quelle que soit la taille de la fenêtre, le défilement est d'environ trois pixels par clic. J'aimerais que ce soit beaucoup plus que ça.

Des idées?

90
Erick Robertson

Vous pouvez essayer ceci:

myJScrollPane.getVerticalScrollBar().setUnitIncrement(16);
182
StKiller

Une façon serait de définir l'incrément d'unité de la barre de défilement sur un nombre plus élevé:

scrollPane.getVerticalScrollBar().setUnitIncrement(20);
11
Jeff

Si vous souhaitez définir la quantité de défilement de la molette de la souris indépendamment de la quantité d'unité de la barre de défilement, vous pouvez utiliser le Mouse Wheel Controller .

10
camickr

Vous pouvez le faire en définissant l'incrément d'unité pour une barre de défilement. Voir l'exemple.

yourScrollPane.getVerticalScrollBar().setUnitIncrement(16);
8
Michael de Jong

Une recherche rapide a fait apparaître cette page: Comment augmenter la vitesse de défilement de JScrollPane pour les utilisateurs de molette . Il s'avère que l'incrément de défilement est une propriété de la barre de défilement elle-même (JScrollBar.setUnitIncrement) et non le volet de défilement.

1
casablanca

J'essayais de trouver une meilleure méthode pour lire 32 000 lignes dans mon ScrollPane

essaye ça

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

0
DrHales