package ImageTest;
import javax.swing.JApplet;
import java.awt.Image;
import java.lang.Exception;
import java.lang.Thread;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.MediaTracker;
import java.applet.Applet;
public class ImageTest extends Applet implements Runnable
{
private Image[] img;
private Image imgBuf;
private Graphics bg;
private int imgCount = 10;
private int curImg;
private MediaTracker mt;
private boolean bStop;//用于标志线程是否结束
public void init()
{
mt = new MediaTracker(this);
bStop = false;
img = new Image[10];
for(int i = 0;i < imgCount;i++)
{
img[i] = getImage(getDocumentBase(), "T" + (i + 1 ) + ".gif");
System.out.println(getDocumentBase());
mt.addImage(img[i], i);
}
try
{
mt.waitForID(0);
}
catch(Exception e)
{
e.printStackTrace();
}
imgBuf = createImage(600, 400);
bg = imgBuf.getGraphics();
bg.setColor(Color.white);
bg.fillRect(0, 0, 600, 400);
bg.drawImage(img[0], 0, 0, this);
}
public void start()
{
curImg = 1;
new Thread(this).start();
}
public void paint(Graphics g)
{
// g.drawImage(img[curImg], 0, 0, this);
g.drawImage(imgBuf, 0, 0, this);
if(mt.checkID(curImg, true))
{
bg.fillRect(0, 0, 600, 400);
bg.drawImage(img[curImg], 0, 0, this);
curImg = ++curImg%imgCount;
}
try
{
Thread.sleep(50);
}
catch(Exception e)
{
e.printStackTrace();
}
repaint();
}
public void stop()
{
bStop = true;
}
public void run()
{
if(!bStop)
{
if(mt.checkID(curImg, true))
{
bg.fillRect(0, 0, 600, 400);
bg.drawImage(img[curImg], 0, 0, this);
curImg = ++curImg%imgCount;
}
try
{
Thread.sleep(50);
}
catch(Exception e)
{
e.printStackTrace();
}
repaint();
}
}
}
以下是对应的html文件
<applet code = "ImageTest.ImageTest.class" width = 600 height = 400 archive = "ImageTest.jar">
</applet>
然后我在命令行下执行appletviewer ImageTest.html
出来了applet但是却没有图像显示,这是为什么呢?
在jar包里面的东西:T1.gif到T10.gif还有一个文件夹ImageTest,里面是ImageTest.class,还有一个是META-INF
很奇怪。。

解决方案 »

  1.   

    可能是你的.html和.class和img的路径有问题吧,我们不知道你的文件结构,不好作出判断
      

  2.   

    怎么是路径问题呢?jar包里面的东西都告诉你们了啊
    这个程序只需要jar包,还有html文件就可以运行了啊,然后把jar包和html文件放到同一个目录下就行了
    这个是孙鑫老师的例子程序,可是我的就是运行不起来
    他是用网页直接打开的,不过我用的是appletviewer打开的
    我不能用网页打开,以双击html文件之后,浏览器说阻止了插件,结果我允许插件也没有任何显示
    特别奇怪
    孙鑫老师说要确保电脑安装了什么东西之后才可以的,可是说的太模糊,根本就听不清
      

  3.   


    this.getClass().getResource("包路径/文件名");