gpt4 book ai didi

Java Swing : how to pass mouse events through JLayeredPane

转载 作者:行者123 更新时间:2023-12-02 08:49:05 25 4
gpt4 key购买 nike

JLayeredPane 可以将鼠标事件从顶层传递到下层吗?

我的 JLayeredPane 中有两个组件:一个 JFrame 显示 map ,另一个 JEditorPane 在其顶部显示 HTML 文本。 JEditorPane 部分透明,用作叠加层,在 map 顶部显示文本,但在其他情况下不可见。

我的问题:当鼠标移动到JEditorPane的透明部分时, map 的JFrame无法获取鼠标事件。

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

JLayeredPane 中有类似的东西吗?

最佳答案

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

    c.dispatchEvent(SwingUtilities.convertMouseEvent(e.getComponent(), e, c));

例如,要将鼠标单击事件从 b 传递到 c,请使用

b.addMouseListener(
new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
c.dispatchEvent(SwingUtilities.convertMouseEvent(b, e, c));
}
});

关于Java Swing : how to pass mouse events through JLayeredPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60899769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com