如何将鼠标事件定位到更深的 JComponents,同时将鼠标事件定位到具有鼠标侦听器的 JComponent

How to target mouse events to the deeper JComponents while it is targeted to a JComponent that has a mouse listener

在 Swing 中,鼠标事件会自动定位到具有鼠标侦听器的最深层组件。 当有一个组件有鼠标侦听器并添加在其他组件之上时,如何再次将它们定位到更深的组件?

应该在不将组件设置为不可见或移除其鼠标侦听器的情况下完成,因为它是透明的JPanel,应该根据鼠标事件做一些工作。

dispatchEvent() 仅在目标成分已知时有用(即下一个更深的成分)。

dispatchEvent() is useful only when the target component is known(i.e. the next deeper component).

您可以使用getParent()方法获取下一个更深的组件。

您还可以使用 SwingUtillities.getAncestorOfClass(...) 查找特定的父项 class。