防止面板下方的组件在面板透明时悬停
Preventing components below panel to get hovered when panel is transparent
我有一个JPanel
,设置为透明:
public SomePanel() {
setOpaque(false);
[...]
}
我在它下面还有其他 JComponent
个实例(在同一位置,但在它下面)。
如果我使用 paintComponent(g)
在面板上绘图,将我的鼠标放在面板上仍然会触发面板下方其他组件的 mouseEntered
和 mouseExited
事件。
如果非不透明面板可见,如何防止面板下方的组件触发鼠标事件?我正在使用 setOpaque(false)
因为我需要一个透明背景,也许有另一种方法可以实现这一点?
一种可能的解决方案:为覆盖 JPanel 提供自己的 MouseListener,该监听器用于简单地吞下鼠标事件并防止它们被传输。代码可以很简单:
myPanel.addMouseListener(new MouseAdapter() {});
我有一个JPanel
,设置为透明:
public SomePanel() {
setOpaque(false);
[...]
}
我在它下面还有其他 JComponent
个实例(在同一位置,但在它下面)。
如果我使用 paintComponent(g)
在面板上绘图,将我的鼠标放在面板上仍然会触发面板下方其他组件的 mouseEntered
和 mouseExited
事件。
如果非不透明面板可见,如何防止面板下方的组件触发鼠标事件?我正在使用 setOpaque(false)
因为我需要一个透明背景,也许有另一种方法可以实现这一点?
一种可能的解决方案:为覆盖 JPanel 提供自己的 MouseListener,该监听器用于简单地吞下鼠标事件并防止它们被传输。代码可以很简单:
myPanel.addMouseListener(new MouseAdapter() {});