我有一个带有图像作为背景的JFrame,名为setUndecorated和setWindowOpaque方法。 当我打开JFrame,然后让电脑进入睡眠状态时,但是当电脑从睡眠中醒来时,JFrame变白。当计算从睡眠模式或待机状态唤醒时,基于图像的jframe会变为白色
我想这可能是重绘问题,但我无法解决这个问题,请你给我一些建议?
我有一个带有图像作为背景的JFrame,名为setUndecorated和setWindowOpaque方法。 当我打开JFrame,然后让电脑进入睡眠状态时,但是当电脑从睡眠中醒来时,JFrame变白。当计算从睡眠模式或待机状态唤醒时,基于图像的jframe会变为白色
我想这可能是重绘问题,但我无法解决这个问题,请你给我一些建议?
您可以简单地尝试重新绘制组件,该组件在窗口(JFrame)接收焦点时包含图像。这应该可以解决“醒来”后我重新绘制的问题。
你也可以试试这个:
frame.addWindowListener (new WindowAdapter()
{
public void windowActivated (WindowEvent e)
{
// Here repaint what you need
}
});
我在JFrame上添加了焦点侦听器,但它不起作用 – chenhai 2012-04-16 10:55:11
首先检查焦点增益事件是否被抛出。如果抛出 - 重新绘制将无济于事,你将需要再次将帧不透明度设置为false,或者甚至重新创建帧(可能由于某个bug)。如果没有 - 尝试我已经添加到下面的答案的窗口监听器,它可能工作。 – 2012-04-16 11:19:07
* “给我一些建议吗?” *邮报[SSCCE(http://sscce.org/)。 – 2012-04-13 14:09:33