防止面板下方的组件在面板透明时悬停

Preventing components below panel to get hovered when panel is transparent

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

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

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

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

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

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

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