我需要扩展一个JPanel
,以便在一定条件下,它在整个可用空间上绘制一个半透明的覆盖层。
从其他答案我收集到的情况是,在这种情况下,我应该覆盖paint()
而不是paintComponent(),
,这样我可以在绘制组件后绘制,但我也没有运气覆盖。
覆盖paintComponent()
将在JPanel
上隐藏组件。
覆盖paint()会在它们前面绘制,但是将鼠标移到JButtons
上会重新绘制它们,它们就会显示出来。
例如,这可行,但如果悬停在JButtons
,则@Override
public void paint(Graphics g){
super.paint(g); //also tried without this call
Graphics2D g2d = (Graphics2D)g;
g2d.setColor(BK_COLOR);
g2d.fillRect(0,0,getWidth(), getHeight());
}
会出现:
<div class="container">
我做错了什么?