2013-08-06 94 views
0

我有以下代碼。雖然它正確顯示線條,矩形,橢圓形和字符串,但圖像無法加載。圖像是在正確的目錄中,只是不知道爲什麼它不顯示...在applet中顯示圖像

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 

回答

0

很可能圖像不存在於文檔庫中。其餘代碼在功能上沒問題。添加init方法如下:

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

並將圖像複製到顯示的位置。


一些相關的注意事項:

你錯過了從paint

super.paint(g); 

而且該聲明將建議把這一聲明

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

到applet的init方法,以便圖像每次都沒有被加載e applet被繪。