3

JScrollPaneのスクロールバーの矢印を使用してスクロールする(または矢印キーのキーバインディングを設定する)と、ビューポートが1増分移動し、一時停止してからスムーズにスクロールします。私が遭遇したほとんどのスクロールバーは同じように動作します。わずかな動き、一時停止、そしてより高速な連続スクロールがあります。スクロールが最初から最後までスムーズになるように、一時停止を回避する方法はありますか?

4

2 に答える 2

6

重要なイベントの初期遅延と繰り返し率は、ホストオペレーティングシステムによって指定されます。ユーザーは、ホストの(プラットフォームに依存する)設定コントロールパネルでデフォルト値を調整することがよくあります。同様に、プラットフォームのサブクラスはBasicScrollBarUI、スロットルをさらに調整する場合がありcom.apple.laf.AquaScrollBarUIますjavax.swing.plaf.metal.MetalScrollBarUI

これらの設定は深く根付いているか、高度にパーソナライズされている可能性があるため、任意の変更が受け入れられない可能性があります。

于 2011-08-24T09:43:42.950 に答える
4

BasicScrollBarUI、スクロールを実行するタイマーを設定する責任があります。

private final static int scrollSpeedThrottle = 60; // delay in milli seconds
...
scrollListener = createScrollListener();
scrollTimer = new Timer(scrollSpeedThrottle, scrollListener);
scrollTimer.setInitialDelay(300);  // default InitialDelay?

繰り返し率が初期遅延よりも速いことがわかります。

したがって、カスタムスクロールバーUIを作成し、そのコードをオーバーライドする必要があると思います。

于 2011-08-24T05:08:37.407 に答える