Java 如果子级未使用事件,则允许父级处理鼠标事件

Java 如果子级未使用事件,则允许父级处理鼠标事件,java,events,swing,parent-child,Java,Events,Swing,Parent Child,我有这个框架: 发生的情况如下: 当我在粉红色的面板上时,滚动窗格工作正常 当我将鼠标放在深灰色的JTextArea上时,滚动窗格不会显示事件 一般来说,我的问题是,如果组件没有处理特定事件,即使组件具有侦听器并且已启用,如何确保组件的父级接收该事件 也许一个具体的例子就可以了 您可以看到计算器,计算器绘制在可缩放的图像面板上,可以通过Ctrl+Wheel事件进行放大和缩小,但当我不按Ctrl键时,我希望滚动窗格接收事件并滚动视图端口。(我想这就是总数) 亚当。虽然不完全“整洁”,但我的工作可

我有这个框架:

发生的情况如下:

  • 当我在粉红色的面板上时,滚动窗格工作正常
  • 当我将鼠标放在深灰色的JTextArea上时,滚动窗格不会显示事件
  • 一般来说,我的问题是,如果组件没有处理特定事件,即使组件具有侦听器并且已启用,如何确保组件的父级接收该事件

    也许一个具体的例子就可以了

    您可以看到计算器,计算器绘制在可缩放的图像面板上,可以通过Ctrl+Wheel事件进行放大和缩小,但当我不按Ctrl键时,我希望滚动窗格接收事件并滚动视图端口。(我想这就是总数)

    亚当。

    虽然不完全“整洁”,但我的工作可能适合做你想做的事情

    您可以使用
    AWTEvent.MOUSE\u WHEEL\u EVENT\u MASK
    而不是
    鼠标事件掩码,并在控制键状态合适时将事件传递到滚动窗格

    (如果运气好的话,有人会发布一个“真实”的机制来将事件转发给父组件)。

    虽然不完全“整洁”,但my可能适合做您想做的事情

    您可以使用
    AWTEvent.MOUSE\u WHEEL\u EVENT\u MASK
    而不是
    鼠标事件掩码,并在控制键状态合适时将事件传递到滚动窗格


    (如果运气好的话,有人会发布一个“真正的”机制来将事件转发到父组件)。

    如我在评论中所述,它工作得很好…

    如我在评论中所述,它工作得很好…

    我可以获取JScrollPane侦听器并将它们添加到每个面板中,但我正在寻找一个更通用的适当解决方案,不要把组件和监听器的层次结构搞得一团糟,因为它们只能在一种情况下工作。我可以抓住JScrollPane监听器并将它们添加到每个面板中,但我正在寻找一个更通用的适当解决方案,不要把组件和侦听器的层次结构搞得一团糟,因为它们只能在一种情况下工作。没有确切的想法,我会看看我是如何做到这一点的。。。谢谢你的主意。不完全是我想的,我会看看我怎么做。。。谢谢你的主意。