我正在制作微波模拟程序,并有一个恼人的问题。我想让微波炉观察窗口在按下按钮时改变颜色,以可视化微波开启。但是,因为我在背景中也有一个带有图标(食物图像)的jlabel,所以我需要背景为半透明。我已经完成了为jPanel(cookingWindow)添加一个alpha值。Java - 在背景上的图形故障repaint
它开始像这样
所以我已经基本上完成了设置一个ActionEvent与下面的代码的启动按钮。
cookingWindow.setBackground(new Color (250,234,1, 150)); cookingWindow.repaint();
这工作,但出现这种情况
当我最小化和最大化窗口,一切都回到地方。但显然,如果您不必将窗口最小化,那将是更可取的。有关如何阻止这个视觉错误的任何想法?
感谢您的链接。迷惑我的部分是,当我最小化和最大化窗口时,它的工作原理也是我想要的。这是为什么? – user2773084
@ user2773084这将涉及组件的绘制顺序 – MadProgrammer
@ user2773084,可能是因为整个框架被重新绘制,所以所有的子组件都被绘制以便背景被正确地绘制。但是,当您更新标签时,只有标签因为不透明而被重新绘制。 – camickr