0

我有一个 JPanel (A),其中包含另一个 JPanel (B)。每个面板都实现了一个 MouseMotionListener 和一个 MouseListener。在拖动时,只有内部/上面板 (B) 响应此事件。所以我从 A 中删除了 MouseMotionListener,从 B 中删除了 MouseListener。第二个测试表明 A 仅在光标位于 B 之外时才会响应。

是否有两个面板对同一个听众做出反应的解决方案。我需要每个事件的 getX() 方法。每个面板应在拖动事件中返回另一个 x 值。因此,就我而言,事件转发不是解决方案。

非常感谢...

4

1 回答 1

1

我不相信 Swing 为事件冒泡提供任何支持(这意味着一个元素上的事件不会传输到其父元素)。解决方法是将父对象传递给子对象,并在子对象上发生事件时手动调用其事件处理程序(不是很好,但它有效)。

于 2012-06-16T19:06:38.077 回答