public abstract boolean drawImage(Image img,
int x,int y,int width,int height,ImageObserver observer)绘制指定图像中已缩放到适合指定矩形内部的图像。图像绘制在此图形上下文坐标空间的指定矩形内部,并且如果需要,则进行缩放。透明像素不影响该处已存在的像素。此方法在任何情况下都立刻返回,甚至在整个图像没有为当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示尚未完成,则 drawImage 返回 false。随着更多的图像可用,装入图像的进程将通过调用图像观察者的 imageUpdate 方法来通知它。图像的缩放版本不一定立刻是可用的,因为已经为此输出设备构造了图像的非缩放版本。每种大小的图像可以被分别缓存,并由各自图像产生序列中的原始数据生成。参数:img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何动作。x - x 坐标。y - y 坐标。width - 矩形的宽度。height - 矩形的高度。observer - 当转换了更多图像时要通知的对象。
***********************************扩展**************************************
createImage
public Image createImage(ImageProducer producer)根据指定的图像生成器创建一幅图像。参数:producer - 图像生成器返回:生成的图像createImagepublic Image createImage(int width, int height)创建一幅用于双缓冲的、可在屏幕外绘制的图像。参数:width - 指定的宽度height - 指定的高度返回:一幅屏幕外可绘制的图像,可用于双缓冲。如果组件是不可显示的,则返回值可能为 null。如果 GraphicsEnvironment.isHeadless() 返回 true,则始终发生这种情况。public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)绘制指定图像中当前可用的图像。图像的左上角位于该图形上下文坐标空间的 (x, y)。图像中的透明像素不影响该处已存在的像素。此方法在任何情况下都立刻返回,甚至在图像尚未完整加载,并且还没有针对当前输出设备完成抖动和转换的情况下也是如此。如果图像已经完整加载,并且其像素不再发生更改,则 drawImage 返回 true。否则,drawImage 返回 false,并且随着更多的图像可用或者到了绘制动画另一帧的时候,加载图像的进程将通知指定的图像观察者。参数:img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何操作。x - x 坐标。y - y 坐标。observer - 转换了更多图像时要通知的对象。返回:如果图像像素仍在更改,则返回 false;否则返回 true。drawImagepublic abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)绘制指定图像中已缩放到适合指定矩形内部的图像。图像绘制在此图形上下文坐标空间的指定矩形内部,如果需要,则进行缩放。透明像素不影响该处已存在的像素。此方法在任何情况下都立刻返回,甚至在整个图像没有针对当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前输出表示形式尚未完成,则 drawImage 返回 false。随着更多的图像可用,加载图像的进程将通过调用图像观察者的 imageUpdate 方法来通知它。缩放的图像不一定立刻可用,因为已经针对此输出设备构造了非缩放的图像。每种大小的图像可以被分别缓存,并由各自图像生产序列中的原始数据生成。参数:img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何操作。x - x 坐标。y - y 坐标。width - 矩形的宽度。height - 矩形的高度。observer - 转换了更多图像时要通知的对象。返回:如果图像像素仍在改变,则返回 false;否则返回 true。drawImagepublic abstract boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)绘制指定图像中当前可用的图像。图像的左上角位于此图形上下文坐标空间的 (x, y)。以指定的背景色绘制透明像素。此操作等同于用给定颜色填充指定图像宽度和高度的矩形,然后在其上绘制图像,但此操作效率更高。此方法在任何情况下都立刻返回,甚至在整个图像尚未加载,并且还没有针对当前输出设备完成抖动和转换的情况下也是如此。如果图像已经完全加载,并且其像素不再发生改变,则 drawImage 返回 true。否则 drawImage 返回 false,并且随着更多的图像可用或者到了绘制动画另一帧的时候,加载图像的进程将通知指定的图像观察者。参数:img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何操作。x - x 坐标。y - y 坐标。bgcolor - 在图像非透明部分下绘制的背景色。observer - 当转换了更多图像时要通知的对象。返回:如果图像像素仍在改变,则返回 false;否则返回 true。drawImagepublic abstract boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)绘制指定图像中已缩放到适合指定矩形内部的图像。图像绘制在此图形上下文坐标空间的指定矩形内部,如果需要,则进行缩放。以指定的背景色绘制透明像素。此操作等同于用给定颜色填充指定图像宽度和高度的矩形,然后在其上绘制图像,但此操作效率更高。此方法在任何情况下都立刻返回,甚至在整个图像没有针对当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示形式尚未完成,则 drawImage 返回 false。随着更多的图像可用,加载图像的进程将通知指定的图像观察者。缩放的图像不一定立刻是可用的,因为已经为此输出设备构造了非缩放的图像。每种大小的图像可以被分别缓存,并由各自图像生产序列中的原始数据生成。参数:img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何操作。x - x 坐标。y - y 坐标。width - 矩形的宽度。height - 矩形的高度。bgcolor - 在图像非透明部分下绘制的背景色。observer - 当转换了更多图像时要通知的对象。返回:如果图像像素仍在改变,则返回 false;否则返回 true。drawImagepublic abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)绘制当前可用的指定图像的指定区域,动态地缩放图像使其符合目标绘制表面的指定区域。透明像素不影响该处已存在的像素。此方法在任何情况下都立刻返回,甚至在要绘制的图像区域没有针对当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示形式尚未完成,则 drawImage 返回 false。随着更多的图像可用,加载图像的进程将通知指定的图像观察者。此方法总是用非缩放的图像来呈现缩放的矩形,并且动态地执行所需的缩放。此操作不使用缓存的缩放图像。执行图像从源到目标的缩放:源矩形的第一个坐标被映射到目标矩形的第一个坐标,第二个源坐标被映射到第二个目标坐标。按需要缩放和翻转子图像以保持这些映射关系。参数:img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何操作。dx1 - 目标矩形第一个角的 x 坐标。dy1 - 目标矩形第一个角的 y 坐标。dx2 - 目标矩形第二个角的 x 坐标。dy2 - 目标矩形第二个角的 y 坐标。sx1 - 源矩形第一个角的 x 坐标。sy1 - 源矩形第一个角的 y 坐标。sx2 - 源矩形第二个角的 x 坐标。sy2 - 源矩形第二个角的 y 坐标。observer - 当缩放并转换了更多图像时要通知的对象。返回:如果图像像素仍在改变,则返回 false;否则返回 true。drawImagepublic abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)绘制当前可用的指定图像的指定区域,动态地缩放图像使其符合目标绘制表面的指定区域。以指定的背景色绘制透明像素。此操作等同于用给定颜色填充指定图像宽度和高度的矩形,然后在其上绘制图像,但此操作效率更高。此方法在任何情况下都立刻返回,甚至在要绘制的图像区域没有针对当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示形式尚未完成,则 drawImage 返回 false。随着更多的图像可用,加载图像的进程将通知指定的图像观察者。此方法总是用非缩放的图像来呈现缩放的矩形,并且动态地执行所需的缩放。此操作不使用缓存的缩放图像。执行图像从源到目标的缩放:源矩形的第一个坐标被映射到目标矩形的第一个坐标,第二个源坐标被映射到第二个目标坐标。按需要缩放和翻转子图像以保持这些映射关系。参数:img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何操作。dx1 - 目标矩形第一个角的 x 坐标。dy1 - 目标矩形第一个角的 y 坐标。dx2 - 目标矩形第二个角的 x 坐标。dy2 - 目标矩形第二个角的 y 坐标。sx1 - 源矩形第一个角的 x 坐标。sy1 - 源矩形第一个角的 y 坐标。sx2 - 源矩形第二个角的 x 坐标。sy2 - 源矩形第二个角的 y 坐标。bgcolor - 在图像非透明部分下绘制的背景色。observer - 当缩放并转换了更多图像时要通知的对象。返回:如果图像像素仍在改变,则返回 false;否则返回 true。copyAreapublic abstract void copyArea(int x, int y, int width, int height, int dx, int dy)将组件的区域复制到由 dx 和 dy 指定的距离处。此方法从 x 和 y 指定的点向下和向右复制。要将组件的区域向左或向上复制,请指定负的 dx 或 dy 值。如果源矩形的一部分位于组件边界的外部,或者被另一个窗口或组件遮掩,那么 copyArea 将无法复制相关的像素。通过调用组件的 paint 方法可刷新被忽略的区域。参数:x - 源矩形的 x 坐标。y - 源矩形的 y 坐标。width - 源矩形的宽度。height - 源矩形的高度。dx - 复制像素的水平距离。dy - 复制像素的垂直距离。