如何禁用JScrollPane标题中的鼠标滚轮滚动?
我目前正在使用JScrollPane(包括JComponent)处理 SWING框架, 其中包含行标题和列标题 (也是JComponents)。 当鼠标位于JComponent或这两个标题之一时,鼠标滚轮会引发滚动。
我想要做的是当鼠标位于列标题上时禁用此滚动 ,但我无法在JScrollPane实例中找到直接方式,也无法在JComponent中找到。 有关信息,我查看了这些来源:
- Sun的Howto on JScrollPane
- JScrollPane javadoc
- JComponent javadoc
如果您有办法,请提前感谢您。
我认为你需要一个两步解决方案。
-
要禁用/启用整个组件的滚轮,请在
JScrollPane
上使用setWheelScrollingEnabled()
。 -
addMouseListener()
选择地执行此操作,请在JScrollPane上执行addMouseListener()
以捕获所有鼠标移动(包括进入和离开),以便您知道指针何时位于标头中。 每当此更改时,您可以打开或关闭滚动。
yourJTable.getTableHeader().setReorderingAllowed(false);
应该工作,试一试。