在applet中显示图像

时间:2013-08-06 18:02:24

标签: java

我有以下代码。正确显示线条,矩形,椭圆和字符串时,图像不会加载。图像在正确的目录中,只是无法弄清楚它为什么不显示...

import java.awt.*;  // for Graphics, Image, and Color classes
import java.applet.Applet;

public class GraphicsDemo extends Applet
{

    public void paint (Graphics g)
    {
        Image image;
        image = this.getImage(getDocumentBase (), "flower.jpg");

        // display smaller complete image in upper left corner of window
        g.drawImage(image, 0, 0, 427, 284,      // destination topL, botR
                0, 0, 640, 427, this);      // source topL, botR

        // establish color of all lines to be drawn
        g.setColor(Color.BLUE);

        // draw rectangle around region to be expanded
        g.drawRect(200, 60, 120, 120);          // topL, width & height

        // draw lines between corners of rectangles
        g.drawLine(200, 60, 240, 240);          // upper left
        g.drawLine(320, 60, 600, 240);          // upper right
        g.drawLine(200, 180, 240, 600);         // lower left
        g.drawLine(320, 180, 600, 600);         // lower right

        // display expanded part of original image
        g.drawImage(image, 240, 240, 600, 600,  // destination topL, botR
                300, 90, 480, 270, this);   // source topL, botR

        // draw rectangle around expanded part of image
        g.drawRect(240, 240, 360, 360);         // topL, width & height

        // create BLUE colored oval and write name on it
        g.fillOval(520, 380, 45, 30);           // topL, width & height
        g.setColor(Color.WHITE);            // change color for text
        g.drawString("Max", 530, 400);          // string & start position

    }   // end main
}   // end class GraphicsDemo

1 个答案:

答案 0 :(得分:0)

图像不太可能存在于文档库中。其余代码功能正常。添加init方法如下:

public void init() {
    System.out.println(getDocumentBase());
}

并将图像复制到显示的位置。


一些相关说明:

你遗漏了paint

中的这句话
super.paint(g);

也建议移动此声明

image = this.getImage(getDocumentBase (), "flower.jpg");

指向applet的init方法,以便每次绘制小程序时都不会加载图像。