java setVisible()闪烁问题
高手您好,我看到你回答过关于javasetVisible的问题,我想请问如何消除setVisble闪烁问题?我设置了一个jPanel,paint了一张图,点按钮让jpan...
高手您好,我看到你回答过关于java setVisible的问题,我想请问如何消除setVisble闪烁问题?我设置了一个jPanel,paint了一张图,点按钮让jpanel消失和出现,使用了setVisible()而出现闪烁,求教如何解决?
双缓冲试过,setVisible()根本不会调用update()。没有真正有有才的人回答? 展开
双缓冲试过,setVisible()根本不会调用update()。没有真正有有才的人回答? 展开
展开全部
闪烁是因为他的上层panel绘制了自己的界面造成的,也就是你的JPanel的背景。使用setVisible方法的时候,swing原则上是先绘制下面的界面,再由下面的界面调整其上面控件的绘制范围,然后调用上层界面进行绘制。如果想消除闪烁你需要解决两个问题,1、刷新顶层界面时不要让下面的界面一起刷新;2、尽可能的自己控制绘制过程而不是由底层界面控制你的绘制过程。这样做等于是重做了swing组件,而swing组件中貌似也没有提供刷新的控制。如果使用AWT组件的话闪烁效果会减轻,但一样会有同样的问题。你可以试试看swt的图形界面教程,记得那个貌似可以自己处理界面的刷新过程,对闪烁问题处理的挺好的。
追问
我以为很简单,谁知你抛给我跟多问题,有简单的代码演示吗?
追答
没有代码演示
多问一句,闪烁对于你正在做的应用是一个硬性的问题吗?如果是,那不能采取其他方式来达到你想要的目的吗?比如不用JPanel装载你的图片,而是仅仅以对象的形式在上一层的Container中缓存,在需要的时候绘制,绘制过程不要用setVisible控制,而是以其他的paint相关的方法控制不行吗?
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询