最近在学习java的GUI程序,对createImage和getImage方法很是困惑,我查阅了JDK文档帮助,来深入理解两种方法
1.publicImagecreateImage(intwidth,intheight)
(在awt.Componet包中)
它是在内存中创建的Image对象,所以重绘速度快很多
JDK文档中描述:创建一幅用于双缓冲,可以在屏幕外绘制的图像,如果组件不可显示, 则返回null
所以在绘图的时候需要先调用setVisible方法来显示组件
必须在GUI程序第一次调用paint方法之后才能使用createImage
可以在程序上使用语句:
Imageoimg=null;
Graphicsog=null;
publicvoidpaint(Graphicsog){
if(oimg!=null){
og.drawImage(oimg,0,0,this);
}
}
createImage就像一个画布一样,把要画的图像加载到它的Image对象上
所以代码写成:
Dimensiond=this.getSize();
oimg=this.createImage(d.width,d.height);
og=oimg.getGraphics();
getSize方法返回当前对象的,以Dimention对象的形式返回组件的大小
上面说createImage对象是创建一幅用于双缓冲,可以在屏幕外绘制的图像
所以把组件的大小传递给createImage方法,由这个方法来创建
另外getGraphics相当于一个画笔,把画笔传递给了Graphics对象,就可以画图了
2.getImageabstractImagegetImage(Stringfilename)
用于返回一幅图像,该图像从指定文件中获取像素数据,
Imageimg=getToolkit().getImage("C://a.jpg");
getToolkit方法返回此组件的工具包
此处getImage位于ToolKit类中,而ToolKit类是抽象类,不可以直接创建,所 以从Component中寻找到getToolKit方法,它返回ToolKit类型,再调用