Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing:如何通过JLayeredPane传递鼠标事件_Java_Swing_Mouseevent_Jlayeredpane - Fatal编程技术网

Java Swing:如何通过JLayeredPane传递鼠标事件

Java Swing:如何通过JLayeredPane传递鼠标事件,java,swing,mouseevent,jlayeredpane,Java,Swing,Mouseevent,Jlayeredpane,JLayeredPane能否将鼠标事件从顶层传递到下层 我在JLayeredPane中有两个组件:一个JFrame显示地图,另一个JEditorPane在上面显示HTML文本。JEditorPane部分透明,用作覆盖,在地图顶部显示文本,但在其他方面不可见 我的问题:当鼠标移动到JEditorPane的透明部分时,贴图的JFrame不会获取鼠标事件 在JavaFX中,StackPane组件具有setPickOnBounds(false)将鼠标事件传递到下面的帧(如果鼠标位于透明像素上) JLay

JLayeredPane
能否将鼠标事件从顶层传递到下层

我在
JLayeredPane
中有两个组件:一个
JFrame
显示地图,另一个
JEditorPane
在上面显示HTML文本。
JEditorPane
部分透明,用作覆盖,在地图顶部显示文本,但在其他方面不可见

我的问题:当鼠标移动到
JEditorPane
的透明部分时,贴图的
JFrame
不会获取鼠标事件

在JavaFX中,
StackPane
组件具有
setPickOnBounds(false)
将鼠标事件传递到下面的帧(如果鼠标位于透明像素上)


JLayeredPane
中是否有类似的内容?

要将鼠标事件
e
传递给组件
c
,请使用

c.dispatchEvent(SwingUtilities.convertMouseEvent(e.getComponent(),e,c));
例如,要将鼠标单击事件从
b
传递到
c
,请使用

b.addMouseListener(
新的MouseAdapter(){
@凌驾
公共无效mouseClicked(MouseEvent e){
c、 dispatchEvent(SwingUtilities.ConvertMouseeEvent(b、e、c));
}
});

基本上,我在寻找与此相反的东西:为什么你不能将你的侦听器连接到
绝地窗格
?@Raffaele我可以,但我如何将事件传递到另一层?为什么你需要?您不能在该侦听器中处理事件吗?map
JFrame
包含许多不同的组件,其中有许多不同的关联鼠标事件已经在中编程。因此,只将事件转发到正确的层而不是重构整个程序将更简单、更不容易出错。