请朋友.帮个忙..
我用的是JCreator2.5  版本...
想写一个动态的图片变化 . 之前建立了一个Base Java Applet  程序.
然后写了如下的代码:
import java.awt.*;
import java.applet.*;
public class ShowPicture extends Applet {
Image [] m_images;
int totalImages = 12;
int currentImage = 0 ;
public void init() {
m_images = new Image[totalImages];
for(int i=0;i<totalImages;i++){
m_images[i] = getImage(getDocumentBase(),"images\\"+i+".gif");
}
}
public void start(){
currentImage = 0;
    }
public void paint(Graphics g) {
g.drawImage(m_images[currentImage],50,50,this);
currentImage = ++currentImage % totalImages ;
try{
Thread.sleep(1000);
}
catch(InterruptedException e){
showStatus(e.toString());
}
repaint();
}
}
然后  我在class目录下建立了一个images子目录  子目录中存放了1到12张250*250*24B .gif格式的的图片   //想问问.文件格式为.jpg..其它的文件格式行不行..
编译时提示成功  但是用appletviewer 运行时..却不能出现图片...
小弟我自学这个感到很吃力...想请大侠帮个忙

解决方案 »

  1.   

    很多IDE都把源文件放到src、class文件放到classes文件夹下,不过当前路径依然是工程文件夹的路径,也就是说不用把图片等放到class目录下,楼主不妨用绝对路径试试
      

  2.   

    m_images[i] = getImage(getDocumentBase(),"images\\"+i+".gif");
    这句不要用getDocumentBase,这是得到这个applet的class所嵌入的那个html文件的绝对路径+html文件名,应该用getCodeBase(),另外那个\用/代替吧所以应该是
    m_images[i] = getImage(getCodeBase(),"images/"+i+".gif");
      

  3.   

    赞成楼上的
    \用/代替,好象java里的文件路径用的是ie的那一类的
    而不是widows的标准路径格式
      

  4.   

    getCodeBase()是返回applet的class文件所在的绝对路径
      

  5.   

    happynautilus(旁比里斯) :
    我用的是JB,但是应该不关编译环境的事把
    同样我在class目录下建立了一个images子目录,我放了两张图片
    并且将m_images[i] = getImage(getDocumentBase(),"images\\"+i+".gif");
    这句,改为:m_images[i] = getImage(getDocumentBase(), "images/" + i + ".gif");
    运行是成功的,
    就是\\用/代替的问题啊
      

  6.   

    不过由于sleep(1000)的原因
    好象要过1秒才开始显示
      

  7.   

    谢谢大家了...
    后来..我自己又认真的做了一下..得到如下的经验:
    *  其中图片中...要以".gif "文件格式为结尾即定义中的文件格式 
    *  其中定义了 在For 语句中  int i=0  定义了要以第 0 张图片为开始 因此 Images 中应该以   *  0    张为起点
    *  getDocumentBase(),  与getCodeBase() 两种格式都可以  区别..小弟我再认真看看
    * //  与 \ 没有什么区别..至少在图片中没什么区别public class TestPicture extends Applet {
    Image [] m_images;
    int totalImages = 12;
    int currentImage = 0 ;
    public void init() {
    m_images = new Image[totalImages];
    for(int i=0;i<totalImages;i++){
    m_images[i] = getImage(getDocumentBase(),"images\\"+i+".gif");
    }
    }
    public void start(){
    currentImage = 0;
        }
    public void paint(Graphics g) {
    g.drawImage(m_images[currentImage],50,50,this);
    currentImage = ++currentImage % totalImages ;
    try{
    Thread.sleep(1000);
    }
    catch(InterruptedException e){
    showStatus(e.toString());
    }
    repaint();
    }
    }