在JScrollPane中更顺畅地滚动
使用JScrollPane的滚动条箭头滚动(或通过设置箭头键的键绑定)将视口移动一个增量,暂停,然后平滑滚动。 我遇到的大多数滚动条表现相同; 有轻微的动作,暂停,然后更快的连续滚动。 有没有办法避免暂停,以便从头到尾滚动顺畅?
BasicScrollBarUI
负责设置执行滚动的计时器。
private final static int scrollSpeedThrottle = 60; // delay in milli seconds ... scrollListener = createScrollListener(); scrollTimer = new Timer(scrollSpeedThrottle, scrollListener); scrollTimer.setInitialDelay(300); // default InitialDelay?
您可以看到重复率比初始延迟快。
所以我猜你需要创建一个自定义滚动条UI并覆盖该代码。
密钥事件的初始延迟和重复率由主机操作系统指定。 用户通常会调整主机(平台相关)首选项控制面板中的默认值。 类似地, BasicScrollBarUI
的平台子类可以进一步调节限制,例如com.apple.laf.AquaScrollBarUI
。
由于这些设置可能根深蒂固或高度个性化,因此可能很难接收任意更改。