关于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);是做什么的?
谢谢! 展开
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);是做什么的?
谢谢! 展开
展开全部
双缓冲就是先在内存中的另一张“画布”上进行多次绘图,然后把画好的图在一次性画到屏幕上,也就是最后一步的g.drawimage。简单的说,一个graphics对应着自己的绘图区域图形上下文
追问
嗯谢谢,这个我是知道的,我是那三个问号的问题不是太明白,能讲解下么?
追答
新加入的TYPE_INT_ARGB是干嘛的?
值的是图片的像素类型,用一个整数代表像素点RGB值,ARGB表示带有透明度的。
Graphics g2=bi.createGraphics();是要做什么?
获取bi的图形上下文,用于对bi进行绘图。
g.drawImage(bi,0,0,this);是做什么的?
吧绘制好的bi图用g(与面板屏幕关联的上下文),绘制出来显示。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询