我创建了JPanel,实现了Scrollable
接口和覆盖方法getScrollableBlockIncrement
。 我将JPanel放入JScrollPane中。 而JPanel包含几个相同高度的组件。这个高度是unitIncrement。 现在,当我点击垂直滚动条上的箭头时,通过unitIncrement移动视口。 但是,当我用鼠标移动旋钮时,视口按像素移动。 如何使viewport只能通过unitIncrement移动?JScrollpane:仅通过unitIncrement滚动
更新:
旋钮是滚动条上的中间按钮,在轨道上拖动它。如图所示How a Scroll Pane Works
我希望视口只能由unitIncrement以任何方式移动。另外当我按下旋钮上的鼠标左键并拖动它。示例行为:Eclipse中的intellisense。
更新2:
我试图 myJScrollPane.getVerticalScrollBar().setUnitIncrement(16);
并没有得到期望的行为。
当我调试代码时,我发现当我拖动旋钮时,参数unitIncrement被丢弃。
更新3:
找不到与JScrollPane的合适的解决方案和定制写道滚动窗格。
可能的重复[如何使JScrollPane滚动每行鼠标滚轮1行?](http://stackoverflow.com/questions/11397581/how-to-make-jscrollpane-scroll-1-line-per-mouse -wheel-step) – 2012-08-05 19:30:08
参见[*实现滚动精明的客户端*](http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html#scrollable)。 – trashgod 2012-08-05 20:28:57
用鼠标_作为鼠标_是否意味着[滚轮](http://en.wikipedia.org/wiki/Scroll_wheel)? – trashgod 2012-08-05 20:31:11