我正在制作微波模拟程序,并且遇到了烦人的问题。我希望微波炉观察窗在按钮按下时改变颜色,以显示微波炉已打开。但是,因为我在背景中也有一个带有图标(食物图像)的jlabel,所以我需要背景是半透明的。我已经完成了为jPanel(cookingWindow)添加alpha值。
它从这个
开始所以我基本上完成的是使用以下代码将actionEvent设置为开始按钮
cookingWindow.setBackground(new Color (250,234,1, 150));
cookingWindow.repaint();
除非发生
,否则此方法有效当我最小化并最大化窗口时,一切都会回到原位。但显然,如果你不必最小化窗口,那将是更好的选择。关于如何阻止这种视觉错误的任何想法?
答案 0 :(得分:2)
有关问题的解释和一些解决方案,请参阅Backgrounds With Transparency。
基本上问题是Swing opaque属性如何处理透明背景(它没有)。
答案 1 :(得分:-1)
重新验证并重新绘制jFrame似乎可以解决所有问题。我以前只是重画jPanel。