【问题标题】:Preventing components below panel to get hovered when panel is transparent当面板透明时,防止面板下方的组件悬停
【发布时间】:2016-07-11 21:06:02
【问题描述】:

我有一个JPanel,设置为透明:

public SomePanel() {
    setOpaque(false);
    [...]
}

我在它下面还有其他 JComponent 实例(在同一位置,但在它下面)。

如果我使用paintComponent(g) 在面板上绘图,将鼠标放在面板上仍会触发其下方其他组件的mouseEntered 和mouseExited 事件。

如果非透明面板可见,如何防止面板下方的组件触发鼠标事件?我正在使用setOpaque(false),因为我需要透明背景,也许还有其他方法可以实现这一点?

【问题讨论】:

标签: java swing jpanel transparency


【解决方案1】:

一种可能的解决方案:为覆盖 JPanel 提供其自己的 MouseListener,它可以简单地吞下鼠标事件并防止它们被传输。代码可以很简单:

myPanel.addMouseListener(new MouseAdapter() {});

【讨论】:

    猜你喜欢
    • 2011-06-02
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2012-12-24
    • 2020-09-08
    • 2010-09-20
    相关资源
    最近更新 更多