createImage()
public Image createImage(int width,
                         int height)创建一幅用于双缓冲的、可在屏幕外绘制的图像。 参数:
width - 指定的宽度
height - 指定的高度 
返回:
一幅屏幕外可绘制的图像,可用于双缓冲。如果组件是不可显示的,则返回值可能为 null。如果 GraphicsEnvironment.isHeadless() 返回 true,则始终发生这种情况.
上面API中的这段话看不懂啊。  何谓“如果组件是不可显示的”?  这个方法该怎么用?

解决方案 »

  1.   

    通过Image.createImage(width,height);可以得到一份图片的copy。也就是说:我们可以把某个图片缓存在内存中,然后随时可以把它调出来用。好,理解了这点,下面的就好办!一:既然这个方法缓存图片的一份copy,那么我们就可以利用它来缓存我们的图片,然后在需要的时候把它刷新的手机屏幕上(也就是g.drawImage()把它画到屏幕上),从而使这个方法可用于双缓冲技术。当然,这个功能是我们常用的,我这里就不罗嗦了!我要将的是下面的一个应用!二:利用Image.createImage(windth,height)来绘制背景。可能LZ觉得很诧异,我们常用绘制背景的方法是剪贴(setClip())。下面我就来演示怎么用这个方法绘制背景title。首先,计算需要用的title图片块,也就是拼凑大地图的小图片块。然后,在内存中把这些小图片块按照数组索引号缓存在内存中。最后,绘制地图的时候再把这些小图片块取出来。结果就是,因为我把这些小图片块缓存在内存块中,所以取出来的时候更快。下面是演示代码:Image img[] = new Image[4];for(int i = 0;i < 4;i++) img[i] = Image.createImage(width,height);int[][] mapTitle = { 1,1,1,1,1,1,1,1,                                 2,3,1,0,3,2,2,2.........}最后通过索引把图片取出来画到屏幕上就OK了。