我使用已实现的Scrollable
接口和覆盖方法getScrollableBlockIncrement
创建了JPanel。
我将JPanel放入JScrollPane。
JPanel包含几个高度相同的组件。这个高度是unitIncrement。
现在,当我单击垂直滚动条上的箭头时,视口会按unitIncrement移动。
但是,当我用鼠标移动旋钮时,视口会按像素移动。
如何使视口仅由unitIncrement移动?
更新:
旋钮是滚动条上的中间按钮,用于拖动它。如图所示How a Scroll Pane Works
我想以任何方式只通过unitIncrement移动视口。当我按下旋钮上的鼠标左键并拖动它时。示例行为:Eclipse中的intellisense。
更新2:
我试过了
myJScrollPane.getVerticalScrollBar().setUnitIncrement(16);
并没有得到理想的行为。
当我调试代码时,我发现拖动旋钮时会丢弃参数unitIncrement。
更新3:
无法使用JScrollPane找到合适的解决方案并编写自定义滚动窗格。
答案 0 :(得分:0)
您可以通过一点点搜索找到问题的答案:How do I speed up the scroll speed in a JScrollPane when using the mouse wheel?
重申一下,您基本上想要修改JScrollBar
上的JScollPane
。
myJScrollPane.getVerticalScrollBar().setUnitIncrement(16);
否则,你可以覆盖JScrollPane上的Scolling事件,根据正在滚动的窗格传递你想要滚动的数量 - 这有点乱......所以如果第一种方式适合你,这就是我的目标。
结论:问题与JScollPane
有关 - 而非Scrollable
类。