我正在制作一个微波模拟程序,但遇到了一个恼人的问题。我希望微波炉观察窗在按下按钮时改变颜色,以可视化微波炉已打开。但是,因为我还有一个背景中有图标(食物图像)的 jlabel,所以我需要背景是半透明的。我已经通过向 jPanel (cookingWindow) 添加 alpha 值来完成此操作。
它是这样开始的
所以我基本上所做的就是使用以下代码将 actionEvent 设置为开始按钮。
cookingWindow.setBackground(new Color (250,234,1, 150));
cookingWindow.repaint();
这有效,除了发生这种情况
当我最小化和最大化窗口时,一切都会回到原来的位置。但显然,如果您不必最小化窗口,那就更好了。关于如何阻止这种视觉错误有什么想法吗?
最佳答案
参见Backgrounds With Transparency了解问题的解释和一些解决方案。
基本上,问题在于 Swing 不透明属性如何处理透明背景(事实并非如此)。
关于Java - 背景重绘时的图形故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22801601/