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