[英]Java Swing: how to pass mouse events through JLayeredPane
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(
new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
c.dispatchEvent(SwingUtilities.convertMouseEvent(b, e, c));
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.