具有相同事件侦听器的堆叠组件

时间:2012-06-16 18:42:09

标签: java swing events event-handling

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

是否存在两个面板对同一个监听器做出反应的解决方案。我需要每个事件的getX()方法。每个面板应在drag-event中返回另一个x值。所以事件转发在我的情况下不是解决方案。

非常感谢......

1 个答案:

答案 0 :(得分:1)

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