0

Scrollable我用实现的接口和覆盖的方法创建了 JPanel getScrollableBlockIncrement。我将 JPanel 放入 JScrollPane 中。JPanel 包含几个具有相同高度的组件。这个高度就是unitIncrement。现在,当我单击垂直滚动条上的箭头时,视口会按 unitIncrement 移动。但是,当我用鼠标移动旋钮时,视口会移动像素。如何使视口仅按unitIncrement移动?

更新:
旋钮是滚动条上的中间按钮,在轨道上,用于拖动它。如图所示,滚动窗格的工作原理

我希望视口仅以任何方式按 unitIncrement 移动。此外,当我在旋钮上按下鼠标左键并拖动它时。示例行为:Eclipse 中的智能感知。

更新 2:
我尝试 myJScrollPane.getVerticalScrollBar().setUnitIncrement(16); 并没有得到想要的行为。
调试代码时,发现拖拽旋钮时参数unitIncrement被丢弃。

更新 3:
无法使用 JScrollPane 找到合适的解决方案并编写了自定义滚动窗格。

4

1 回答 1

0

您的问题的答案可以通过一点搜索来找到: 如何在使用鼠标滚轮时加快 JScrollPane 中的滚动速度?

JScrollBar重申一下,您基本上想修改JScollPane.

myJScrollPane.getVerticalScrollBar().setUnitIncrement(16);

否则,您将不得不覆盖 JScrollPane 上的 Scolling 事件,以根据正在滚动的窗格传递您想要滚动的量 - 这有点混乱......所以如果第一种方法适合你,那就是我会去的。

底线:问题出在JScollPane- 而不是你的Scrollable班级。

于 2012-08-05T22:49:15.050 回答