初学java,望指教:import java.applet.*;import java.awt.*;public class Example22_2 extends Applet{Image img;int height;int width;public void start(){img = getImage(getCodeBase(),"mn.jpg");height = img.getHeight(this);width = img.getWidth(this);}public void paint(Graphics g){g.drawImage(img, 20, 20, width, height, this);}}我在eclipse下编译,对于paint()中的 g.drawImage(img, 20, 20, width, height, this);当去掉width, height,是能显示出图片的,添加上这两个参数后图片就缩成一条线,请问这是为什莫???
參考答案:不知道呀,我用你的程序,能显示出来呀。其实不加和加了什么区别。
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。
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 - 当转换了更多图像时要通知的对象。
返回:
如果图像像素仍在改变,则返回 false;否则返回 true。
这都是API上说的哦!
参考资料:java5.0 API