日期:2014-05-20  浏览次数:20813 次

applet程序不能正常显示动画
我正在学java,这是教材里面的代码,一模一样输入
Java code

//<applet code = "Ani.class" height = "200" width = "200">
//</applet>
import java.awt.*;
import javax.swing.*;

class ImagePanel extends JPanel
{
        Image[] img;
        int currentImage = 0;
        public ImagePanel(Image[] img)
        {
                this.img = img;
        }
        public void paintComponent(Graphics g)
        {
                super.paintComponent(g);
                g.drawImage(img[currentImage], 0, 25, this);
                currentImage = (currentImage + 1) % 10;
        }
        public void run()
        {
                while (true)
                {
                        repaint();
                        try
                        {
                                Thread.sleep(200);
                        } catch (InterruptedException e) { }
                }
        }
}

public class Ani extends JApplet
{
        ImagePanel panel = null;
        Image[] image = new Image[10];

        Thread t = null;
        public void init()
        {
                for (int i = 0; i < 10; i++)
                {
                        image[i] = getImage(getDocumentBase(), "T"+(i+1)+".gif");
                }
                panel = new ImagePanel(image);
                panel.setBackground(Color.GREEN);
                getContentPane().add(panel);
        }
        public void start()
        {
                t = new Thread(panel);
                t.start();
        }
}




然后用appletviewer打开,动画什么都没有

------解决方案--------------------

你看的教科书可能过时了,从这个站点吸取点营养:

http://download.oracle.com/javase/tutorial/uiswing/components/applet.html
------解决方案--------------------
import java.awt.*;
import javax.swing.*;

class ImagePanel extends JPanel
{
Image[] img;
int currentImage = 0;
public ImagePanel(Image[] img)
{
this.img = img;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(img[currentImage], 0, 25, this);
currentImage = (currentImage + 1) % 10;
}
public void run()
{
while (true)
{
repaint();
try
{
Thread.sleep(200);
} catch (InterruptedException e) { }
}
}
}

public class Ani extends JApplet
{
ImagePanel panel = null;
Image[] image = new Image[10];

Thread t = null;
public void init()
{
for (int i = 0; i < 10; i++)
{
image[i] = getImage(getDocumentBase(), "T"+(i+1)+".gif");
}
panel = new ImagePanel(image);
panel.setBackground(Color.GREEN);
getContentPane().add(panel);
}
public void start()
{
t = new Thread();
t.start();
}
}
这样就可以了,同时,你要把图片放在工程的bin目录下
------解决方案--------------------
不要看qpplet了,这已经过时了,已经没有用了。学这个白费劲啊。