我有一个JPanel (A),其中包含另一个JPanel (B)。每个面板都实现一个 MouseMotionListener 和一个 MouseListener。拖动时,只有内/上面板 (B) 响应此事件。所以我从A中删除了MouseMotionListener,从B中删除了MouseListener。第二个测试表明,仅当光标在 B 之外时,A 才会响应。
是否有两个面板对同一侦听器做出反应的解决方案。我需要每个事件的 getX() 方法。每个面板应在拖动事件中返回另一个 x 值。因此,在我的情况下,事件转发不是解决方案。
非常感谢...
我不相信 Swing 为事件的冒泡提供任何支持(这意味着一个元素上的事件不会传输到其父元素)。 解决此问题的方法是将父对象传递给子对象,并在子对象上发生事件时手动调用其事件处理程序(不是很好,但它有效)。