JScrollpane:仅由unitIncrement滚动

时间:2012-08-05 19:14:12

标签: java swing jscrollpane

我使用已实现的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找到合适的解决方案并编写自定义滚动窗格。

1 个答案:

答案 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类。