【问题标题】:How to disable scrolling from mouse wheel in a JScrollPane header?如何在 JScrollPane 标题中禁用鼠标滚轮滚动?
【发布时间】:2009-11-26 12:21:01
【问题描述】:

我目前正在开发一个带有 JScrollPane(包括 JComponent)、行标题和列标题(也是 JComponents)的 SWING 框架。当鼠标悬停在 JComponent 或这两个标题之一上时,鼠标滚轮会引发滚动。

我想做的是在鼠标悬停在列标题上时禁用此滚动,但我找不到直接的方法,也找不到 JScrollPane 实例,也找不到 JComponent。 有关信息,我查看了这些来源:

如果您有办法,请提前感谢您。

【问题讨论】:

    标签: java swing jscrollpane


    【解决方案1】:

    我认为您需要一个两步解决方案。

    • 要禁用/启用整个组件的滚轮,请在JScrollPane 上使用setWheelScrollingEnabled()

    • 要选择性地执行此操作,请在 JScrollPane 上执行 addMouseListener() 以捕获所有鼠标移动(包括进入和离开),以便您知道指针何时位于标题中。每当这种情况发生变化时,您都可以打开或关闭滚动。

    【讨论】:

    • 好的,我测试了一下:实际上,自定义的 MouseListener 应该被添加到用于 header 的 JComponent 中(而不是添加到 JScrollPane 中),但基本上,它可以工作。非常感谢。
    • 太棒了!感谢您为我疯狂而疯狂的想法扮演豚鼠。我很高兴看到它成功了。 :)
    【解决方案2】:

    yourJTable.getTableHeader().setReorderingAllowed(false);

    应该可以,试试看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多