| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 581 人关注过本帖
标题:避免闪烁
只看楼主 加入收藏
situ7886
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-3-5
收藏
 问题点数:0 回复次数:2 
避免闪烁

当图片移动时,怎样避免闪烁

搜索更多相关主题的帖子: 闪烁 
2006-10-07 16:44
999hits
Rank: 1
等 级:新手上路
威 望:1
帖 子:227
专家分:0
注 册:2005-10-2
收藏
得分:0 
让你的英雄(就是那张动的图片)和你的背景一起刷新就行,利用双缓存,现将英雄和背景绘制到后缓存,然后再将整个缓存区的东西复制到屏幕上,用buffer创建缓存区,再利用Component类的createImage(int w,int h)方法生成后缓存,代码如下:
private Image doubleBuffer;
public void update(Graphics g)
{
Dimension size=getSize();
if(doubleBuffer==null||doubleBuffer.getWidth(this)!=size.width||doubleBuffer.getHeight(this)!=size.height)
{
doubleBuffer=createImage(size.width,size.height);
}
if(doubleBuffer!=null)
{
Graphics g2=doubleBuffer.getGraphcis();
paint(g2);
g2.dispose();
g.drawImage(doubleBuffer,0,0,null);
}
else
{
paint(g);
}
}

J3D的摸瞎人
2006-10-07 17:13
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

一般来说,只要你的图片进了内存,并且是在JPanel上画的,一般是不会闪烁的
如果你直接在JFrame上画图片的话,那是肯定会闪的
javax.swing包里面的组件都是采用了双缓冲技术的,一般来说是不会闪烁的


可惜不是你,陪我到最后
2006-10-07 17:18
快速回复:避免闪烁
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018860 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved