3

使用 JScrollPane 的滚动条箭头滚动(或通过设置箭头键的键绑定)将视口移动一个增量,暂停,然后平滑滚动。我遇到的大多数滚动条的行为都是一样的。有轻微的移动,暂停,然后更快的连续滚动。有什么办法可以避免暂停,让滚动从头到尾流畅?

4

2 回答 2

6

关键事件的初始延迟和重复率由主机操作系统指定。用户经常在主机的(依赖于平台的)首选项控制面板中调整默认值。类似地,平台的子类BasicScrollBarUI可以进一步限制节流,例如com.apple.laf.AquaScrollBarUIv. 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 回答