java setVisible()闪烁问题

高手您好,我看到你回答过关于javasetVisible的问题,我想请问如何消除setVisble闪烁问题?我设置了一个jPanel,paint了一张图,点按钮让jpan... 高手您好,我看到你回答过关于java setVisible的问题,我想请问如何消除setVisble闪烁问题?我设置了一个jPanel,paint了一张图,点按钮让jpanel消失和出现,使用了setVisible()而出现闪烁,求教如何解决?
双缓冲试过,setVisible()根本不会调用update()。没有真正有有才的人回答?
展开
 我来答
天方之夜谭
2013-04-23 · TA获得超过587个赞
知道小有建树答主
回答量:223
采纳率:100%
帮助的人:206万
展开全部
闪烁是因为他的上层panel绘制了自己的界面造成的,也就是你的JPanel的背景。使用setVisible方法的时候,swing原则上是先绘制下面的界面,再由下面的界面调整其上面控件的绘制范围,然后调用上层界面进行绘制。如果想消除闪烁你需要解决两个问题,1、刷新顶层界面时不要让下面的界面一起刷新;2、尽可能的自己控制绘制过程而不是由底层界面控制你的绘制过程。这样做等于是重做了swing组件,而swing组件中貌似也没有提供刷新的控制。如果使用AWT组件的话闪烁效果会减轻,但一样会有同样的问题。你可以试试看swt的图形界面教程,记得那个貌似可以自己处理界面的刷新过程,对闪烁问题处理的挺好的。
追问
我以为很简单,谁知你抛给我跟多问题,有简单的代码演示吗?
追答
没有代码演示
多问一句,闪烁对于你正在做的应用是一个硬性的问题吗?如果是,那不能采取其他方式来达到你想要的目的吗?比如不用JPanel装载你的图片,而是仅仅以对象的形式在上一层的Container中缓存,在需要的时候绘制,绘制过程不要用setVisible控制,而是以其他的paint相关的方法控制不行吗?
来自:求助得到的回答
yuio23
2013-04-24
知道答主
回答量:26
采纳率:0%
帮助的人:32.1万
展开全部
我自己解决了,原因是paint的图片是png图片,png图质量比较大,转换成gif就不会了。回收分。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-22
展开全部
可以尝试设置双缓冲
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式