Korbel先生已经死了,非常感谢
我在JPanel
上有一个鼠标监听器并且它正常工作。我正在尝试向JLabel
添加一些翻转支持,但是当我将鼠标侦听器添加到JLabel时,JPanel
的鼠标侦听器会在标签的鼠标侦听器接收到事件时停止接收事件。
我只是想在JLabel上添加一个鼠标监听器,而不会阻塞它下面的JPanel
的鼠标监听器。感谢。
奖金问题!我想做getComponentAt(Point p)
并将组件放在按钮上,而不是最顶层的任何建议?我有一个解决方法,所以这部分并不重要,但我不喜欢解决方法。再次感谢。
答案 0 :(得分:3)
请你的JLabel
可移动/可拖动,在其他情况下你的问题不会让我真正意义上的,因为层次结构中最深的JComponenet
默认采用Focus / MouseListeners,无论如何看{{3 ,有方法可以返回父亲的相对坐标
答案 1 :(得分:2)
但是当我将鼠标监听器添加到JLabel时,JPanel的鼠标监听器会在标签的鼠标监听器收到事件时停止接收事件。
是的,这是鼠标事件处理的工作方式。只有具有侦听器的第一个组件才会收到该事件。将事件从组件层次结构传递到每个组件并不是非常有效。
我只是想在JLabel上添加一个鼠标监听器,而不会阻塞它下面的JPanel的鼠标监听器。
您可以在附加到标签的鼠标侦听器中处理此问题,然后将事件重新发送到父面板。有关详细信息,请查看API中dispatchEvent(...)
类的Component
。