Плавная прокрутка в JScrollPane - PullRequest
3 голосов
/ 24 августа 2011

Используя стрелки прокрутки JScrollPane для прокрутки (или установив привязки клавиш для клавиш со стрелками), перемещайте область просмотра на один шаг, паузы и плавную прокрутку.Большинство полос прокрутки, с которыми я столкнулся, ведут себя одинаково;есть небольшое движение, пауза, а затем более быстрая непрерывная прокрутка.Есть ли способ избежать паузы, чтобы плавная прокрутка от начала до конца?

Ответы [ 2 ]

6 голосов
/ 24 августа 2011

Начальная задержка и частота повторения для ключевых событий задаются операционной системой хоста. Пользователи часто настраивают значения по умолчанию на панели управления предпочтениями хоста (в зависимости от платформы). Точно так же подкласс платформы BasicScrollBarUI может дополнительно обусловить регулирование, например, com.apple.laf.AquaScrollBarUI v. javax.swing.plaf.metal.MetalScrollBarUI.

Поскольку эти настройки могут быть глубоко укоренившимися или высоко персонализированными, произвольные изменения могут быть плохо приняты.

4 голосов
/ 24 августа 2011

BasicScrollBarUI отвечает за настройку таймера, который выполняет прокрутку.

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

Вы видите, что частота повторения выше начальной задержки.бы предположить, что вам нужно создать пользовательский интерфейс полосы прокрутки и переопределить этот код.

...