关于java中利用BufferedImage的双缓冲技术 10

在编程中第一次使用这种技术,先后的程序如下(略有简化)try{BGImage=ImageIO.read(newFile("D:/图片/棋盘.jpg"));}catch(I... 在编程中第一次使用这种技术,先后的程序如下(略有简化)
try {BGImage = ImageIO.read(new File("D:/图片/棋盘.jpg"));
} catch (IOException e) {
e.printStackTrace();}

public void paint(Graphics g)
{g.drawImage(BGImage,20,37,this);
g.。。。。。。(多次使用了g.绘图)}

之后加入双缓冲技术防止闪屏
try {BGImage = ImageIO.read(new File("D:/图片/棋盘.jpg"));
} catch (IOException e) {
e.printStackTrace();}

public void paint(Graphics g)
{
//Double buffer technique
BufferedImage bi=new BufferedImage(600,600,BufferedImage.TYPE_INT_ARGB);
Graphics g2=bi.createGraphics();
g2.drawImage(BGImage,20,37,this);
g2.。。。。。。(g.全部改为g2.)

g.drawImage(bi,0,0,this);
}
这样修改对么
新加入的TYPE_INT_ARGB是干嘛的?
Graphics g2=bi.createGraphics();是要做什么?
g.drawImage(bi,0,0,this);是做什么的?
谢谢!
展开
 我来答
302652034_bai
2015-03-27 · TA获得超过4145个赞
知道大有可为答主
回答量:2206
采纳率:66%
帮助的人:1540万
展开全部
双缓冲就是先在内存中的另一张“画布”上进行多次绘图,然后把画好的图在一次性画到屏幕上,也就是最后一步的g.drawimage。简单的说,一个graphics对应着自己的绘图区域图形上下文
追问
嗯谢谢,这个我是知道的,我是那三个问号的问题不是太明白,能讲解下么?
追答
新加入的TYPE_INT_ARGB是干嘛的?

值的是图片的像素类型,用一个整数代表像素点RGB值,ARGB表示带有透明度的。
Graphics g2=bi.createGraphics();是要做什么?

获取bi的图形上下文,用于对bi进行绘图。
g.drawImage(bi,0,0,this);是做什么的?

吧绘制好的bi图用g(与面板屏幕关联的上下文),绘制出来显示。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式