在JScrollPane中更平滑的滚动



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

关键事件的初始延迟和重复率由主机操作系统指定。用户经常在主机的(依赖于平台的)首选项控制面板中调整默认值。类似地,平台的BasicScrollBarUI子类可能进一步约束节流,例如com.apple.laf.AquaScrollBarUI vs . javax.swing.plaf.metal.MetalScrollBarUI

由于这些设置可能是根深蒂固的或高度个性化的,任意更改可能会让人难以接受。

BasicScrollBarUI负责设置滚动的计时器。

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

可以看到,重复速率比初始延迟快。

所以我猜你需要创建一个自定义滚动条UI并重写该代码

相关内容

  • 没有找到相关文章